SELECT id, name FROM tab order by rand() LIMIT 0,10

解决方案 »

  1.   

    这样得到的EXPLAIN结果是类似的,只不过是Extra: Using temporary; Using filesort
      

  2.   

    id是不连续的,否则建立在id区间做随机数选择然后在id上建索引即可把行数控制在10-15左右。
      

  3.   

    你可以改变随机数发生器的种子
    rand(now())
      

  4.   

    有什么区别么? 我就是为了躲开rand()才用limit, rand同样是查询所有行,外加外排序和临时表.