mysql索引的理解

索引的原理:

如果我们在根据条件搜索数据时,通常是在数据文件中,把数据全部遍历一遍然后取出数据。

MySQL中索引默认是使用B+Tree存储的,这种数据结构最擅长的就是搜索数据,几千万行的索引数据能很快就搜索到目标数据,这时索引在数据量很大的情况下,索引就相当的重要。

在MySQL中,主键PRIMARY KEY会自动创建索引,唯一约束UNIQUE字段也会自动创建索引。

索引的好处:

1、索引大大减小了服务器对数据库的扫描量,从而加快数据的检索速度;
2、索引可以帮助服务器避免排序时创建临时表,减少数据的排序次数,降低CPU的消耗;
3、索引可以随机IO读取变成顺序IO读取,顺序IO读取的速度明显提升;
4、对应InnoDB引擎,索引可精确定位范围数据,在查询时可以精确添加行级锁,提高访问的并发。

索引的缺点:

1、索引在进行修改添加删除数据时,数据库引擎会进行索引的维护,增加了相关操作的速度;
2、建立索引文件会额外占用物理空间,数据越多创建的索引也会随之增大。

应该创建的索引:

1、在需要经常搜索的列上添加索引,加快搜索速度;
2、在主键约束字段,强制唯一和组织好顺序,如果不是顺序的,会导致添加数据时频繁的进行索引排序,降低数据添加的效率;
在经常JOIN连接的列上添加索引,加快连接的速度;
3、在需要进行范围搜索的列上添加索引,因为索引已经排好顺序了,范围搜索使用索引可以快速定位查询范围;
4、在经常需要进行排序的字段上添加索引,利用索引的排序特性,排序时不用再次去进行排序计算;

不该创建的索引:

1、不该在很少用的字段上创建索引,创建索引会消耗资源,很少用到的字段没有创建价值;
2、不该在重复值过多的列上创建索引,重复值过多,搜索时会遍历所有的重复值,和没有索引一样;
3、不该在大字段的列(text,bit,clob)上创建索引,大字段创建索引,索引会非常大;
4、不该在频繁修改的字段列上添加索引,索引只能加快查询速度,会降低更新速度;

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值