如何将MySQL查询性能优化到极致?( 二 )


完整查询语句是:
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 , 后续我都会持续更新和维护 , 感谢大家长期以来对冰河的支持!!
写在最后

如果你觉得冰河写的还不错 , 请微信搜索并关注「 冰河技术 」微信公众号 , 跟冰河学习高并发、分布式、微服务、大数据、互联网和云原生技术 , 「 冰河技术 」微信公众号更新了大量技术专题 , 每一篇技术文章干货满满!不少读者已经通过阅读「 冰河技术 」微信公众号文章 , 吊打面试官 , 成功跳槽到大厂;也有不少读者实现了技术上的飞跃 , 成为公司的技术骨干!如果你也想像他们一样提升自己的能力 , 实现技术能力的飞跃 , 进大厂 , 升职加薪 , 那就关注「 冰河技术 」微信公众号吧 , 每天更新超硬核技术干货 , 让你对如何提升技术能力不再迷茫!




推荐阅读