MySQL随机选取资源--优化
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,接前文:http://blog.itpub.net/29254281/viewspace-2120294/前文中,Order by rand()在数据量大的时候,会有一些性能问题.set autoco
千家信息网最后更新 2025年11月07日MySQL随机选取资源--优化接前文:
http://blog.itpub.net/29254281/viewspace-2120294/
前文中,Order by rand()在数据量大的时候,会有一些性能问题.
优化的方式就是从最大的ID,随机选取一个值。
这样避免了排序.
但是应用程序还是需要判断,Update的影响行数是否为0.如果为0,则需要再次调用.
大招版本:
http://blog.itpub.net/29254281/viewspace-2120294/
前文中,Order by rand()在数据量大的时候,会有一些性能问题.
- set autocommit=false;
- set @roomid:=-1;
- select
- min(roomid) into @roomid
- from
- room_info
- where
- roomid >
- (
- select
- floor(max(roomid) * rand() + 1)
- from
- room_info
- )
- and state = 1;
- update room_info
- set
- state = 2
- where
- roomid =@roomid
- and state = 1;
- select @roomid;
- commit;
优化的方式就是从最大的ID,随机选取一个值。
这样避免了排序.
但是应用程序还是需要判断,Update的影响行数是否为0.如果为0,则需要再次调用.
大招版本:
- set autocommit=false;
- set @roomid:=-1;
- select max(roomid) into @roomid from room_info;
- set @roomid:=floor(rand()*@roomid+1);
- update room_info
- set
- state = 2
- where
- roomid =
- coalesce
- (
- (select roomid from (select min(roomid) roomid from room_info where state=1 and roomid > @roomid) a),
- (select roomid from (select max(roomid) roomid from room_info where state=1 and roomid < @roomid) b)
- )
- and state = 1 and @roomid:=roomid;
- select @roomid;
- commit;
前文
最大
再次
应用程序
性能
数据
方式
时候
版本
程序
还是
问题
应用
影响
排序
资源
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络安全技术课程设计报告
医院签名服务器的应用范围
上半年5G网络技术ppt
电商与工业网络技术哪个好
社交软件分享功能数据库设计
web 服务器 搭建
润和软件开发的东西怎么样
河北数字技术和网络安全
淳诺互联网科技有限公司
如何搜索重大网络安全事件
如何管理多个虚拟服务器
网络安全系统有哪几个
计算机网络技术专业资格证
学软件开发的五年大专学费多少
还原数据库在哪找文件
服务器100m
顺义区网络技术服务报价
中国国际版服务器中国端口
邹平应用软件开发
电脑v2rayn服务器怎么添加
海信电视服务器长什么样
光遇国际服务和服务器合并了吗
无线网可以拼服务器吗
北京常见软件开发代理价格
游戏检测软件开发
苹果电脑登陆云服务器
ftp服务器压力测试
influxdb数据库
xp磁盘管理器服务器不可用
遵守网络安全法 禁止转发