select * from table order by rand(); 是如此的慢以至于根本无法用。
我的表非常的巨大

解决方案 »

  1.   

    千万别用rand()取随机数字
    可以产生几个随机id 类似  select  * from  tb  where id in (3,55,77,101,555);
      

  2.   

    show index table 表名;
    临时表处理后,然后再
    select * from 临时表 order by rand();
      

  3.   

    如果取的id比较多的话,用in是不好处理的。
      

  4.   

    select * from table order by rand(); 是全表扫描生成结果后再利用文件排序,速度肯定慢。一般的通用做法是,先在程序中生成一组随机数, A() = {1,40,99,452 }
    然后找出ID<= 这些随机数的 limit 1 的记录。