表总的数据量

select count(*) from obj_track_20130304 ; --4320000条

1.

select * from obj_track_20130304 order by rand() limit 5;  

--查询时间12.328s

2.

SELECT *
FROM obj_track_20130304 AS t1
           JOIN (SELECT ROUND(RAND() * (SELECT MAX(id) FROM obj_track_20130304)) AS id) AS t2
WHERE t1.id >= t2.id
ORDER BY t1.id ASC LIMIT 5;   

--查询时间0.528s

3.

SELECT * 
FROM obj_track_20130304 
WHERE id>=(SELECT FLOOR(RAND()*(SELECT MAX(id) FROM obj_track_20130304)))
ORDER BY ID LIMIT 5;  


 --查询时间0.015s

1,2,3比较,不同的SQL语句查询效率差别很大。

PS:
rand()是产生的随机数;floor()是不大于指定数的最大整数.

 

 

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-01-06
  • 2022-12-23
  • 2021-12-03
  • 2021-11-18
  • 2021-10-03
猜你喜欢
  • 2022-12-23
  • 2021-10-03
  • 2021-11-14
  • 2022-12-23
  • 2021-05-19
  • 2021-09-06
  • 2021-10-15
相关资源
相似解决方案