MySQL 运维实战课
张新铭(俊达)
云掣科技资深数据库专家,前淘宝网、支付宝数据库专家
797 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已更新 18 讲/共 41 讲
第二章 SQL优化篇 (1讲)
MySQL 运维实战课
15
15
1.0x
00:00/00:00
登录|注册

17|SQL优化第一步:理解访问路径

你好,我是俊达。
大家都知道,我们使用 SQL 来访问数据库,而优化 SQL 对于保证数据库系统的高效、稳定运行,以及满足业务需求和降低成本都具有至关重要的意义。从这一讲开始,我们来系统地学习 SQL 优化。一条 SQL 语句,在数据库内部是怎么执行的呢?SQL 的性能,又会受哪些因素影响呢?
关系型数据库中,SQL 语句的执行主要分为几个大的步骤。
对 SQL 文本进行解析,生成 SQL 语法树。
优化器根据 SQL 语法树、表和索引的结构和统计信息,生成执行计划。
SQL 执行引擎根据执行计划,按一定的步骤,调用存储引擎接口获取数据,执行表连接、排序等操作,生成结果集。
将结果集发送给客户端。
在这一讲和接下来的几讲中,我将围绕优化器、执行计划、SQL 执行引擎,把 SQL 优化讲透。
我们先从访问路径(Access path)开始。访问路径是指根据表的物理存储结构,以及给定的查询条件,从表中获取数据的方法。访问路径包括表扫描和索引访问,还包括表连接的算法,如嵌套循环连接(Nested Loop Join)、哈希连接(Hash Join)、排序合并连接(Sort Merge Join)。

表的物理存储

数据页

数据页是数据表中数据存储的基本单位。一个数据页的大小通常可能为 4K、8K、16K、32K。在 InnoDB 中,默认的页面大小为 16K。记录以行的形式存储在数据页中,每行记录在数据页中占用一段连续的空间。通常 1 行记录可能占用几十字节到几百或几千字节。每个数据页能容纳的记录数一般在几行到几百行之间。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
  • 解释
  • 总结

1. SQL优化对于数据库系统的高效、稳定运行和满足业务需求至关重要。 2. SQL语句的执行步骤包括解析SQL文本、生成执行计划、执行SQL语句、发送结果集给客户端等。 3. 访问路径是指根据表的物理存储结构和查询条件,从表中获取数据的方法,包括表扫描和索引访问。 4. 数据页是数据表中数据存储的基本单位,每个数据页能容纳的记录数一般在几行到几百行之间。 5. 索引是用来快速检索数据的一种结构,InnoDB支持的索引类型包括B+树索引、全文索引、空间索引、Hash索引。 6. 聚簇索引是InnoDB中表的数据按聚簇索引的形式存储,Key字段为表结构定义中Primary Key指定的字段。 7. 索引条件下推可以利用索引中字段的值来过滤掉一些不满足条件的记录,减少回表的次数。 8. 嵌套循环连接是MySQL中最早支持的连接算法,其性能取决于驱动表获取数据的效率、满足条件的记录数以及被驱动表获取数据的效率。 9. 哈希连接算法在MySQL 8.0中支持,通过构建哈希表来匹配数据,适用于驱动表满足条件的记录数较多的情况。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《MySQL 运维实战课》
新⼈⾸单¥59
立即购买
登录 后留言

精选留言

由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论
显示
设置
留言
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部