完整查询语句是:
SELECT * FROM `table` WHERE id >= (SELECT floor( RAND() * ((SELECT MAX(id) FROM `table`)-(SELECT MIN(id) FROM `table`)) + (SELECT MIN(id) FROM `table`))) ORDER BY id LIMIT 1;SELECT * FROM `table` AS t1 JOIN (SELECT ROUND(RAND() * ((SELECT MAX(id) FROM `table`)-(SELECT MIN(id) FROM `table`))+(SELECT MIN(id) FROM `table`)) AS id) AS t2 WHERE t1.id >= t2.id ORDER BY t1.id LIMIT 1;
最后对这两个语句进行分别查询10次 ,
前者花费时间 0.147433 秒 , 后者花费时间 0.015130 秒
看来采用JOIN的语法比直接在WHERE中使用函数效率还要高很多 。
重磅福利微信搜一搜【冰河技术】微信公众号 , 关注这个有深度的程序员 , 每天阅读超硬核技术干货 , 公众号内回复【PDF】有我准备的一线大厂面试资料和我原创的超硬核PDF技术文档 , 以及我为大家精心准备的多套简历模板(不断更新中) , 希望大家都能找到心仪的工作 , 学习是一条时而郁郁寡欢 , 时而开怀大笑的路 , 加油 。如果你通过努力成功进入到了心仪的公司 , 一定不要懈怠放松 , 职场成长和新技术学习一样 , 不进则退 。如果有幸我们江湖再见!
另外 , 我开源的各个PDF , 后续我都会持续更新和维护 , 感谢大家长期以来对冰河的支持!!
写在最后
如果你觉得冰河写的还不错 , 请微信搜索并关注「 冰河技术 」微信公众号 , 跟冰河学习高并发、分布式、微服务、大数据、互联网和云原生技术 , 「 冰河技术 」微信公众号更新了大量技术专题 , 每一篇技术文章干货满满!不少读者已经通过阅读「 冰河技术 」微信公众号文章 , 吊打面试官 , 成功跳槽到大厂;也有不少读者实现了技术上的飞跃 , 成为公司的技术骨干!如果你也想像他们一样提升自己的能力 , 实现技术能力的飞跃 , 进大厂 , 升职加薪 , 那就关注「 冰河技术 」微信公众号吧 , 每天更新超硬核技术干货 , 让你对如何提升技术能力不再迷茫!
推荐阅读
- Mysql创建用户和权限管理
- 如何让机器更懂你?是时候了解NLP了!
- 巴达山曼迈普洱茶,至简至美的巴达山纯料即将上市
- 如何优雅地使用httprunner测试框架进行接口测试?收藏
- 分布式系统如何寻址
- 我对 MySQL 锁、事务、MVCC 的一些认识
- MySQL 中,21 个写 SQL 的好习惯
- 如何清洗空调,空调清洗方法步骤 空调清洗怎么清洗
- 不同的场合该如何泡茶,如何泡茶
- 玻璃茶具代表作,玻璃茶具欣赏