说起这个随机查询,大家都知道使用rand()函数,但是当数据量达到一定程度的时候,查询效率就可想而知了。所以呢?我们不妨考虑下优化这个查询方案。

    我的优化方式为,通过程序来随机,再配合limit来取值。咱们记录下大概思路哈。

    首先查询出符合条件的数据条数,之后用PHP的rand函数来在这个数值范围内随机取值,之后直接查询就可以。

    示例sql:select count(*) from test where $where; (计算所需要的数据的总条数)

             $offset = rand(0,$count)

             select * from test where $where limit $offset,1;   (查询出所需数据)

    大家可以动手试试。五百万左右的数据情况下,查询速度较之mysql的rand函数查询方式快了最少十倍。

    如果感觉不错的话,请多多点赞支持哦。。。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐