MySQL 中随机获取数据

由于需要大概研究了一下MYSQL的随机抽取实现方法。

目前采用的方法:

  

SELECT
    *
FROM
    tablename
ORDER BY
    RAND()
LIMIT 1

实现原理:

  通过ORDER BY RAND()来打乱数据的排序,LIMIT 来限制获取数据的条数。

缺点:

  效率低。在进行大数据量检索时,会增加检索时间。一个15万余条的库,查询5条数据,居然要8秒以上。

  官方手册说明,rand()放在ORDER BY 子句中会被执行多次,自然效率很低。

posted @ 2017-05-03 18:07  牧之君  阅读(1500)  评论(0编辑  收藏  举报