SQL语句LIMIT在MySQL中的性能分析
来源:互联网 发布:相同名字的数据求和 编辑:程序博客网 时间:2024/06/02 05:56
limit语句的执行时间
我的MySQL中有一个表(table),里面有450000条数据。下面这条SQL语句是将id排序后,查询从第0位(偏移量)开始,往后的10条数据。
SELECT * FROM table order by id desc limit 0, 10
注意这条语句是先执行order by,再按limit要求来查询。
根据limit偏移量的不同,SQL语句执行时间的统计数据如下:
为什么偏移量越大,查询越费时?
- 每条数据的实际存储长度不一样(所以必须要依次遍历,不能直接跳过前面的一部分)
- 哪怕是每条数据存储长度一样,如果之前有过delete操作,那索引上的排列就有gap
- 所以数据不是定长存储,不能像数组那样用index来访问,只能依次遍历,就导致偏移量越大查询越费时
归根结底,这个问题跟MySQL的数据存储结构有关。
参考
- http://blog.csdn.net/fangwei1235/article/details/8621655
- http://stackoverflow.com/questions/1612957/mysql-index-configuration
- https://explainextended.com/2009/10/23/mysql-order-by-limit-performance-late-row-lookups/
- http://stackoverflow.com/questions/4481388/why-does-mysql-higher-limit-offset-slow-the-query-down
- order by是如何执行的,http://stackoverflow.com/questions/6954981/how-does-mysql-order-by-implemented-internally
- mysql 索引的原理,http://www.uml.org.cn/sjjm/201107145.asp
- MySQL存储引擎MyISAM与InnoDB的优劣, https://www.pureweber.com/article/myisam-vs-innodb/
- 存储引擎,http://coolshell.cn/articles/1846.html
0 0
- SQL语句LIMIT在MySQL中的性能分析
- mysql sql语句中的limit用法
- mysql limit性能分析
- sql语句中的limit
- mysql中的limit语句
- MySQL SQL语句性能分析
- mysql sql语句性能分析
- MYSQL sql 语句性能分析
- Mysql Limit语句性能测试
- SQL语句中的limit使用方法
- SQL语句中的limit使用
- [MySQL性能优化系列]LIMIT语句优化
- mysql使用Profiling分析query语句,sql语句性能优化
- mysql limit分页 SQL语句模糊查询
- SQL语句中的limit的用法
- SQL查询语句中的 limit offset
- [转]SQL查询语句中的 limit offset
- SQL查询语句中的 limit offset
- Ajax表单提交插件jquery form
- LeetCode 之 Remove Duplicates from Sorted Array
- Hadoop和Spark分别实现二次排序
- 3水塔问题
- Polya定理的学习
- SQL语句LIMIT在MySQL中的性能分析
- 在asp.net中获取mac地址的方法(C#后台获取的方法和前台Javascript(调用ActiveX)获取的方法)
- 链式A+B
- 深度优先搜索
- Problem H: C语言实验——分数序列
- [opencv]6.添加滑动条调整图片
- XCode7.3 模拟器键盘不显示解决方案
- Highway Project 浙江省第十三届省赛K题 ZOJ 3946(dijkstra+邻接表+优先队列)
- 2016/5/3