说起这个随机查询,大家都知道使用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函数查询方式快了最少十倍。
如果感觉不错的话,请多多点赞支持哦。。。