一.索引说明
1.单字段索引,每个sql(一般)只会用一个索引
因为扫描多个索引可能还没有全表扫描来的快
2.聚合索引(多字段组成的索引)
1.聚合索引存储原理
索引保存以最左侧索引字段进行排序保存,左侧字段相同是在以第二个字段保存,以此类推
mysql联合索引怎么存储_联合索引在B+树上的存储结构及数据查找方式_weixin_39732991的博客-CSDN博客
2.覆盖索引
当select的值或where的值都存在于聚合索引中,那么这种查询在索引的b+数中就能找到,不需要查表,这种叫做覆盖索引
3.最左原则
从左到有当查询不到数据,或使用大于小于等范围查询,会导致右边的条件不走索引
4.索引下推
当索引不满足最左原则,右边这条件是索引字段,这时会触发索引下推,就是在索引过滤后,在用没有触发的索引得索引字段去做一层过滤,然后在查表
Mysql中到底什么是索引下推,一分钟看懂_w鸿儒的博客-CSDN博客_索引下推是什么意思
二.查看sql执行
1.查看执行计划 explain
执行顺序是根据id从大到小,id相同的从上到下
explain select * from a;
2.查看优化后的sql
explain select * from a;
show warnings;
3.执行计划参数
mysql的sql执行计划详解_360linker的博客-CSDN博客_sql执行计划详解