首先,我们为什么要使用索引,索引有什么作用呢?
索引可以用来快速查询数据表中有某一特定值的记录,大大加快数据的查询速度;在列上创建了索引之后,查找数据时可以直接根据该列上的索引找到对应记录行的位置,从而快捷地查找到数据。
https://blog.csdn.net/sumengnan/article/details/112796692 该文对索引底层B+tree做了详细讲解。
索引有几种类型呢?
普通索引Normal | 主要以B+树和哈希索引为主,任务是加快对数据的访问速度,常用于查询和排序的条件。 |
唯一索引Unique | 和普通索引类型,区别是唯一索引值不能重复,但值能为空。 |
全文索引FullText | 利用查询关键字和查询列内容之间的相关度进行检索。 |
主键索引 | 是一种特殊的唯一索引,一个表只能有一个主键,不允许有空值。 |
索引的优缺点是什么呢?
优点:创建索引可以大幅提高系统性能,帮助用户提高查询,排序和分组的速度。
缺点:索引的存储需要占用磁盘空间,当数据的量非常巨大时,索引的创建和维护所耗费的时间也是相当大的。
哪些情况不需要创建索引呢?
1. 表记录太少或者是很少使用的列。
2. 经常增删改操作的表。建索引提高了查询速度,但是降低了更新的速度,因为在更新数据的时候,同时也要更新索引文件。
3. where条件里用不到的字段不用创建索引。
4. 数据重复且分布平均的表字段,某个数据列包含许多重复的内容,建立索引没有太大实际效果。
索引失效有哪些场景呢?
此文就不进行验证了,可自行验证。