`
joan0106
  • 浏览: 142540 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
社区版块
存档分类
最新评论

mysql随机查询的优化 mysql随机函数RAND()的使用方法

阅读更多

SELECT * FROM tablename ORDER BY RAND() LIMIT 1

SELECT MIN(id), MAX(id) FROM tablename;

Fetch the result into $a

$id=rand($a[0],$a[1]);

SELECT * FROM tablename WHERE id>='$id' LIMIT 1

大意是说,如果你用 ORDER BY RAND() 来随机读取记录的话,当数据表记录达到30万或者更多的时候,mysql将非常吃力.
所以php手册里给了一种方法,结合php来实现:
首先 SELECT MIN(id), MAX(id) FROM tablename; 取数据库里最大最小值;
然后 $id=rand($a[0],$a[1]); 产生一个随机数;
最后 SELECT * FROM tablename WHERE id>='$id' LIMIT 1 将上面产生的随机数带入查询;

0
0
分享到:
评论

相关推荐

    MySQL数据库优化SQL篇PPT课件.pptx

    从执行计划、SELECT语句、IN和EXIST语句、LIMIT语句、RAND函数、Order by、Group by、Distinct和Count等方面对MySQL数据库优化进行了详细的讲解。 一、执行计划 执行计划是MySQL数据库优化的重要步骤。执行计划...

    MYSQL随机抽取查询 MySQL Order By Rand()效率问题

    总之,当面临MySQL中的随机查询效率问题时,避免在`ORDER BY`子句中直接使用`RAND()`函数,而是利用主键和`RAND()`结合的方式,或者采用`JOIN`操作,可以显著提升查询速度。在实际应用中,应根据具体场景和数据量...

    MySQL中的RAND()函数使用详解

    当你在查询的ORDER BY子句中使用RAND(),MySQL会随机地对查询结果进行排序。比如,你有一个名为`employee_tbl`的表,想要随机显示员工的信息,可以这样操作: ```sql SELECT * FROM employee_tbl ORDER BY RAND();...

    mysql随机查询若干条数据的方法

    在mysql中查询5条不重复的数据,使用以下: 代码如下:SELECT * FROM `table` ORDER BY RAND() LIMIT 5 就可以了。但是真正测试一下才发现这样效率非常低。一个15万余条的库,查询5条数据,居然要8秒以上搜索Google...

    MySQL的指定范围随机数函数rand()的使用技巧

    MySQL中的`RAND()`函数是一个非常实用的工具,用于生成0到1之间的随机浮点数。在某些场景下,我们可能需要生成指定范围内的随机整数,例如在模拟数据或者进行测试时。`RAND()`函数虽然不能直接接收参数来定义这个...

    MySQL 随机函数获取数据速度和效率分析

    在mysql中带了随机取数据的函数,在mysql中我们会有rand()函数,很多朋友都会直接使用,如果几百条数据肯定没事,如果几万或百万时你会发现,直接使用是错误的。下面我来介绍随机取数据一些优化方法。 SELECT * FROM...

    mysql优化取随机数据慢的方法

    这里我是直接使用mysql rand by函数来直接,几千条记录没关系,但如果到了几万条感觉要几秒,这个就很慢了,下面小编与大家一起来看看mysql 取随机数据慢优化过程。MySQL很多时候需要获取随机数据,举个例子,要从...

    mysql MySQL数据库开发优化与管理维护

    - **巧用RAND()/RAND(N)提取随机行**:介绍如何利用随机函数随机选取数据。 - **利用GROUP BY的WITH ROLLUP子句做统计**:演示如何使用GROUP BY和WITH ROLLUP进行汇总统计。 - **用BIT GROUP FUNCTIONS做统计**:...

    MySQL性能优化的21个最佳实践.pdf

    然而,使用某些函数如CURDATE()、NOW()或RAND()会导致查询不被缓存,因为这些函数返回的结果是不定的、易变的。因此,建议使用变量代替这些函数,以便开启查询缓存。 其次,使用EXPLAIN关键字可以让你了解MySQL如何...

    MySQL 随机查询数据与随机更新数据实现代码

    这里的`RAND()`函数在MySQL中返回0到1.0之间的随机浮点值。通过`ORDER BY RAND()`,数据库会根据这个随机值对表中的所有记录进行排序,然后`LIMIT 5`限制返回结果的数量为5。请注意,这种查询方式可能会对性能产生...

    MySQL数据库优化SQL篇PPT学习教案.pptx

    MySQL数据库优化SQL篇学习教案旨在帮助读者学习和掌握 MySQL 数据库优化的相关知识,涵盖了 SELECT 语句优化、执行计划、IN 和 EXISTS 语句、LIMIT 语句、RAND 函数、Order、Group、Distinct 和 Count 等方面的知识...

    MySQL性能优化的最佳经验

    常见的动态函数包括`CURDATE()`、`NOW()`和`RAND()`等,因为这些函数的返回值会根据时间或随机因素发生变化。为了充分利用查询缓存,可以通过使用变量替代这些动态函数的方式,确保查询缓存能够正常工作。 #### 2. ...

    辛星笔记之MySQL优化篇

    `RAND()`函数在MySQL中用于生成一个介于0到1之间的随机浮点数,可以用于选取数据表中的随机记录。`WITH ROLLUP`用于`GROUP BY`子句中,提供了额外的汇总行,可以用来实现更复杂的统计分析。 3. 锁问题:数据库锁是...

    Mysql\学习笔记\mysql优化

    ` 可以随机选取表中的5行数据,但RAND()函数会导致全表扫描,对大数据量的表不建议频繁使用。 3. GROUP BY with ROLLUP:GROUP BY语句配合WITH ROLLUP可以生成更详尽的分组统计信息,不仅包含各组的聚合结果,还...

Global site tag (gtag.js) - Google Analytics