SQL篇-Mysql索引篇

索引的优势:提高查询效率,降低数据库IO,通过对索引列进行排序,可以降低CPU的消耗
索引的劣势:增加磁盘存储(mysql要存索引文件),降低更新 表的效率

MyISAM和Innodb存储引擎只支持BTREE索引类型

索引分类
单列索引
组合索引
全文索引
空间索引

Innodb下数据和索引是在同一个索引树上的,叶子节点存放的是数据,而MyISAM的B树叶子节点存放的是数据的地址
如果使用的是辅助索引,则查询索引树的次数为2,先从辅助索引树查出主键,再从主键索引树查出数据,如果将辅助索引与主键结合形成组合索引,则查询的索引树次数则为1,提高查询效率

Explian参数讲解
在这里插入图片描述

1、Id越大,优先级别越高,越先执行,如果相等,按顺序执行
2、Type依次从好到坏排序: System, const, eq_ref, ref, fulltext, …range,inde,all

组合索引,如果遇到范围查询时,所以会失效:
如:index_A_B_C_D
查询条件为: where A =1 and B =1 and C=1 and D=1, 索引都用到了
而当条件为:where A = 1 and B = 1 and C >1 and D =1 索引值用到了A,B,C
如果将索引改成 index_A_B_D_C则索引全部生效

索引失效的原因分析
1、不要在索引上做计算
2、索引字段上不要使用!= 或者<> 或者is not null,会导致索引失效而转全表扫描
3、索引字段不要使用like通配符开头
4、索引字段如果是字符串,要加单引号,防止索引失效,(隐式转换导致)
5、非主键索引字段不要使用or

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值