百万级数据mysql随机查询优化技巧
mysql有rand()来执行随机数据查询,最简单的就这样:
SELECT * FROM `zhaoxi.net` ORDER BY RAND() LIMIT 6
但是如果数据量到一定时,执行速度非常慢,特别是百万级数据的情况下更是痛苦。
通过优化执行,执行速度明显提高:
SELECT * FROM `zhaoxi.net`
WHERE id >= (SELECT floor(RAND() * (SELECT MAX(id) FROM `zhaoxi.net`)))
ORDER BY id LIMIT 6;立刻试试吧