MySQL选择随机行-rand()性能 [英] MySQL select random row - rand() performance

查看:284
本文介绍了MySQL选择随机行-rand()性能的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

与其他解决方案相比,ORDER BY rand()性能真的很慢吗?如果是,从数据库中选择随机行的更好方法是什么?

Is it true that ORDER BY rand() performance is very slow compared to other solutions? If yes, what are better ways to select random row(s) from the database?

我的查询:

SELECT sName FROM bpoint WHERE placeID=? ORDER BY rand() LIMIT 1; 

推荐答案

是的,ORDER BY RAND()在较大的结果集中可能非常慢.

Yes, ORDER BY RAND() can be very slow in larger result-sets.

一个选择是使用此语句(到数组中)获取结果集:

An option is to fetch resultset with this statement (into an array):

SELECT sName FROM bpoint WHERE placeID=?; 

之后-使用array_rand($resultset)$resultset查询中获取随机项.

After that - use array_rand($resultset) to get a randomized item from the $resultset query.

这篇关于MySQL选择随机行-rand()性能的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆