mysql索引类别和失效场景

本文介绍了数据库索引的作用,如加快数据查询速度,并详细讲解了不同类型的索引,包括普通索引、唯一索引、全文索引和主键索引。同时,讨论了索引的优缺点,如提高查询效率但占用磁盘空间,并指出了不应创建索引的情况,如数据量小、频繁更新或非查询条件字段。最后,提到了索引可能失效的场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先,我们为什么要使用索引,索引有什么作用呢?

索引可以用来快速查询数据表中有某一特定值的记录,大大加快数据的查询速度;在列上创建了索引之后,查找数据时可以直接根据该列上的索引找到对应记录行的位置,从而快捷地查找到数据。

https://blog.youkuaiyun.com/sumengnan/article/details/112796692 该文对索引底层B+tree做了详细讲解。

索引有几种类型呢?

普通索引Normal主要以B+树和哈希索引为主,任务是加快对数据的访问速度,常用于查询和排序的条件。
唯一索引Unique和普通索引类型,区别是唯一索引值不能重复,但值能为空。
全文索引FullText利用查询关键字和查询列内容之间的相关度进行检索。
主键索引是一种特殊的唯一索引,一个表只能有一个主键,不允许有空值。

索引的优缺点是什么呢?

        优点:创建索引可以大幅提高系统性能,帮助用户提高查询,排序和分组的速度。

        缺点:索引的存储需要占用磁盘空间,当数据的量非常巨大时,索引的创建和维护所耗费的时间也是相当大的。

哪些情况不需要创建索引呢?

        1. 表记录太少或者是很少使用的列。

        2. 经常增删改操作的表。建索引提高了查询速度,但是降低了更新的速度,因为在更新数据的时候,同时也要更新索引文件。

        3. where条件里用不到的字段不用创建索引。

        4. 数据重复且分布平均的表字段,某个数据列包含许多重复的内容,建立索引没有太大实际效果。

索引失效有哪些场景呢?

此文就不进行验证了,可自行验证。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值