1 Explain执行计划分析
explain的用法
# 执行计划
explain select * from pms_product where id=1;
# 组合索引一定是最左匹配原则
# 如果你在表上建立了很多组合索引,索引文件膨胀,修改、删除、更新会比较慢
expalin的作用
- 查看表的读取顺序
- 读取操作类型
- 哪些索引可用
- 表之间关联
- 每张表有哪些索引被优化器执行
type
- system
- const
- eq_ref
- ref
- range
- index
- ALL
查询的效果从上到下越来越差
2 索引命中策略分析
- 最左匹配原则
- 在索引字段上加入函数:不走索引
- is null/is not null:不走索引
- 覆盖索引:key-value都在索引里,如果select columns直接使用的是索引列就直接使用覆盖索引
- 只要索引条件和or挨着:就用不上
3 索引分析总结
优势:
- 提高查询速度
- 表连接的时候,加速连接
- 保证数据唯一:唯一索引
劣势:
- 修改和增加数据时会提升开销
- 索引还会占用物理空间
- 在进行大量的insert或update、delete时,速度会变慢
适合建立索引的列:
- 数据差异化较大
- 频繁查询的列,where条件里经常用到的
- 常用的表关联字段
- 查询中统计或分组的字段
不适合建立索引的列
- 记录值特别少
- 值变化特别小,重复率高
- 经常增删改的表
4 数据库出现问题后如何死而不僵
mysql> show processlist;
mysql> kill pid;
本文深入探讨了SQL执行计划分析,解释了explain的使用方法及其对查询优化的重要性。文章详细介绍了索引的设计原则,包括最左匹配原则、覆盖索引的利用,以及索引在提高查询速度和确保数据唯一性方面的优势。同时,也讨论了索引可能带来的性能开销和空间占用问题。适合建立索引的列和不适合建立索引的列也被明确指出。
504

被折叠的 条评论
为什么被折叠?



