MySQL随机查询出一条记录
| 代码如下 | 复制代码 | 
| 
 
  | 
	  |
这样写效率比较高,,千万不要用order by rand()那种,,数据量大了,order一下效率很低
 下面我来介绍一下 随机取出记录的优化 
第一种方法:
结合应用层来实现
只要SELECT MAX(id) FROM table;取出最大的id,然后用随机生成一个1~MAX(id)数,比如PHP mt_rand(1, MAX(id)) 然后再在用这个随机id去查询那条记录。
第二种方法:
利用数据库生成的随机的id,子查询的方式
| 代码如下 | 复制代码 | 
| SELECT CEIL(RAND() * (SELECT MAX(id) FROM table)); | 
	  |
这样我们就可以获取一个随机的id.(对MAX()进行优化,不使用SELECT CEIL(RAND() * MAX(id)) FROM table),执行一下,大大优化了
| 代码如下 | 复制代码 | 
| 
 
  | 
	  |
第三种方法:
利用JOIN的方法
| 代码如下 | 复制代码 | 
| 
 SELECT *  | 
	  |
补充: 数据库,mysql教程
查看更多关于Mysql rand()随机取出记录的优化的详细内容...