数据库索引及 sql 调优
上海趣医网络技术服务有限公司
西安运维中心
2016 年 12 月
目录
背景说明.....................................................................................................................................2
1. 索引.........................................................................................................................................2
1.1 索引的定义...................................................................................................................2
1.1.1 聚集索引....................................................................................................................2
1.1.2 非聚集索引................................................................................................................3
1.1.3 举例说明....................................................................................................................3
1.2 索引的扩展...................................................................................................................5
1.2.1 组合索引及在 sql 优化中的借鉴.............................................................................5
1.2.2 覆盖索引....................................................................................................................5
1.2.3 执行计划 extra 列出现 MRR...................................................................................5
1.3 索引在优化过程中的使用...........................................................................................6
1.3.1 索引的最左前缀要求................................................................................................6
1.3.2 字段使用函数,将不能用到索引............................................................................6
1.3.3 致命的无引号导致全表扫描....................................................................................6
1.3.4 Order by/group by 类 sql 的优化...............................................................................7
2. 如何看执行计划.....................................................................................................................7
2.1 认识 mysql 的执行计划...............................................................................................7
3. sql 优化案例(三个)-不加索引,而是充分利用现有索引.................................................10
3.1 执行计划为 ref_or_null..............................................................................................10
3.2 Sql 拆分案例(业务拆分-向主键靠拢)......................................................................11
3.3 Sql 拆分案例(向更合理的索引靠近)........................................................................12
4. Sql 优化心得体会.................................................................................................................14
4.1 为什么我写的 sql 慢..................................................................................................14
4.2 如何让自己的 sql 写的更快......................................................................................14
关于本文档
主 题
数据库索引及锁原理
说 明
本文档提供关于 MySQL 数据库索引及锁原理说明
适用对象
研发、运维技术