MySQL优化之索引

MySQL优化之索引

1.索引优缺点

优点:
1.提高数据库的检索效率,降低IO成本
2.通过索引进行排序,降低数据排序的成本,降低CPU消耗
缺点:
1.占用空间
2.降低更新数据的速度

2.InnoDB索引分类

1.聚集索引
数据与索引放在一起,索引的叶子节点保存行数据,只存在1个
2.二级索引,索引只保存主键,需要回表查询(通过索引获取主键,通过主键获取行数据),可以存在多个

3.索引失效情况

1.索引列上进行运算,
2.字符串没有加上双引号
3.使用模糊查询(ps:尾部加%不会失效)
4.多个条件用or关联,其中一个条件没有添加索引,则失效

4.索引

1.最左前缀法则
当索引包含有多列的时候,从最左列开始。
2.使用覆盖索引(查询使用了索引,并且需要返回的列,在该索引中已经全部能找到,减少select *的使用,可能出现回表查询)
3.前缀索引(截取一个字段的前几位当作索引)
当表中存在字段具有很长的字符串,且有高基数(指出现重复频率很低)的特点时使用。原因:索引存放很长的字符串会导致索引变大从而浪费磁盘IO,降低查询的效率。
4.联合索引
一个索引包含了多个列,当查询条件为多个或者需要返回多个字段的时候使用。

5.索引的设计原则

1.数据量较大,且查询使用频繁的表使用索引
2.对于经常需要使用到排序,分组的使用索引
3.尽量选择高基数的字段当作索引
4.针对高基数的长字段使用前缀索引
5.尽量使用联合索引,减少回表查询
6.减少不必要的索引,节约资源
7.索引列如果不能存在NULL,则建表时尽可能使用not null

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雨言yyds

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值