解决Mysql坑爹的随机函数rand()
来源:互联网 发布:光环国际大数据开发 编辑:程序博客网 时间:2024/05/21 10:15
原始的sql语句是:
select content poetryDesc,author poetryAnthor,l.backImg labelImg,p.id poetryId,p.fullContent flag from dd_poetry p join dd_label l on l.id = p.archaics order by rand()
直接随机在数据量过大的时候,导致数据库服务器cpu瞬间100%
优化之后的sql:
-- SELECT id FROM table t1 JOIN (SELECT round(RAND() * (SELECT MAX(id) FROM table)) AS nid FROM table LIMIT n) t2 ON t1.id = t2.nid;-- select * from dd_poetry t1 join (select round(rand() * (select max(id) from dd_poetry)) as nid from dd_poetry ) t2 on t1.id = t2.nidselect content poetryDesc,author poetryAnthor,l.backImg labelImg,p.id poetryId,p.fullContent flag from dd_poetry p join dd_label l on l.id = p.archaics join (select round(rand() * (select max(id) from dd_poetry)) as nid from dd_poetry ) t2on p.id = t2.nid
感谢:http://imysql.cn/2014/07/04/mysql-optimization-case-rand-optimize.shtml
0 0
- 解决Mysql坑爹的随机函数rand()
- 随机函数rand的使用
- 关于c语言的随机函数rand()
- c++里的随机函数rand()
- sql 的随机函数newID()和RAND()
- C语言随机函数rand()的用法
- 随机函数的rand、srand用法
- C++中随机函数rand()的用法
- C语言随机函数rand()的用法
- 关于随机函数rand()的使用
- rand和srand随机函数的用法
- 随机函数rand()[c++]
- 随机函数rand()[c++]
- MATLAB随机函数rand
- 随机函数 rand()
- rand()/srand()随机函数
- 随机函数rand()[c++]
- 随机函数 rand&srand
- Link layer之PPP
- 开启nginx状态监控
- C++共用体的介绍
- Android播放动画的方法示例
- javaweb-day05-2&3&4(Servlet - 一些细节)
- 解决Mysql坑爹的随机函数rand()
- 备份一下Ubuntu12.04更新源
- highcharts学习之第一个例子
- ViewStub(惰性加载View)详解
- Syline6.5学习心得-web-环境配置
- 黑马程序员——自定义异常
- SSH无密码登录
- 怎么追踪手机号码的位置
- 停车宝怎么用