[摘要]+----+-------------+-------+------+---------------+------+---------+------+--------+---------------...
+----+-------------+-------+------+---------------+------+---------+------+--------+---------------------------------+1 row in set (0.00 sec)根据分析结果,运行需要0.25秒,order by rand() 需要使用临时表(Using temporary),需要使用文件排序(Using filesort),效率低下。 改进方法1.首先获取查询的总记录条数total 2.在总记录条数中随机偏移N条(N=0~total-1) 3.使用limit N,1 获取记录 代码如下: 分析: mysql> select * from user limit 23541,1;
+-------+------------+----------------------------------+----------+--------------+-----------+ |
关键词: mysql order by rand() 效率优化办法