如何快速地随机取记录?
select * from table order by rand(); 是如此的慢以至于根本无法用。
我的表非常的巨大
------解决方案--------------------千万别用rand()取随机数字
可以产生几个随机id
类似 select * from tb where id in (3,55,77,101,555);
------解决方案--------------------select * from table order by rand(); 是全表扫描生成结果后再利用文件排序,速度肯定慢。
一般的通用做法是,先在程序中生成一组随机数, A() = {1,40,99,452 。。。}
然后找出ID<= 这些随机数的 limit 1 的记录。