·设为首页收藏本站📧邮箱修改🎁免费下载专区🔐设置/修改密码👽群雄群聊
返回列表 发布新帖

mysql大数据量随机查询rand()优化

202 6
发表于 2022-3-23 19:15:16 | 显示全部楼层 阅读模式

马上注册,免费下载更多dz插件网资源。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
原语句:select id from table order by rand() limit n;

优化后语句:select id from table t1 join (select round(rand()*(select max(id) from table)) as idd) as t2 on t1.id>t2.idd limit n;

速度飞快
我要说一句 收起回复

评论6

婷姐Lv.8 发表于 2022-3-23 19:15:45 | 显示全部楼层
数据量大了,还是不行吧
我要说一句 收起回复
TyCodingLv.8 发表于 2022-3-23 19:16:39 | 显示全部楼层
目前测试百万级 随机可行
我要说一句 收起回复
独家记忆Lv.8 发表于 2022-3-23 19:17:12 | 显示全部楼层
你如果数据量更大  就不该用rand() 函数
我要说一句 收起回复
CrystαlLv.8 发表于 2022-3-23 19:17:35 | 显示全部楼层
千万级别 rand  很慢的,而且mysql优化不建议直接使用mysql程序的,如果ID连续 可以用php代码生成
我要说一句 收起回复
IT618发布Lv.8 发表于 2022-3-23 19:18:08 | 显示全部楼层
不如程序随机生成id 然后数据库直接查
我要说一句 收起回复
婷姐Lv.8 发表于 2022-3-23 19:18:13 | 显示全部楼层
mysql 执行进本读写,其他交给程序
我要说一句 收起回复

回复

 懒得打字嘛,点击右侧快捷回复【查看最新发布】   【应用商城享更多资源】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

投诉/建议联系

discuzaddons@vip.qq.com

未经授权禁止转载,复制和建立镜像,
如有违反,按照公告处理!!!
  • 联系QQ客服
  • 添加微信客服

联系DZ插件网微信客服|最近更新|Archiver|手机版|小黑屋|DZ插件网! ( 鄂ICP备20010621号-1 )|网站地图

您的IP:3.15.27.232,113.219.161.57,GMT+8, 2024-5-7 00:29 , Processed in 0.233183 second(s), 125 queries , Gzip On, Redis On.

Based on Discuz! W1.0 Licensed

© 2001-2024 Discuz! Team.

关灯 在本版发帖
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表