三、索引
1、什么是索引?
在数据库中,索引(Index)是一种特殊的数据结构,用于加快数据库表的查询速度。它们可以看作是对表中某一列或多列的引用,加速查询,类似于书中的目录。
通常情况下,数据库表中会有很多行数据,如果要查找其中符合特定条件的行,那么需要进行一次全表扫描,时间复杂度为O(n)。而有了索引,查询就可以通过类似二分查找的方式快速定位到符合条件的数据,从而大大缩短了查询时间。
索引可以在创建表的时候定义,也可以在表创建后添加,常见的索引类型包括B+树索引、哈希索引、全文索引等。其中B+树索引是最常见和常用的索引类型,适用于大多数场景。
需要注意的是,虽然索引可以加快查询速度,但同时也会增加数据的写入和更新的成本,因为每次数据的修改都需要更新索引。因此,在设计索引时需要平衡查询效率和数据修改成本,并根据具体业务场景和查询需求选择合适的索引策略。
2、索引有哪些优缺点?
索引的优点:
提高查询速度:通过使用索引,查询可以快速定位到符合条件的数据,从而大大提高查询速度。
加速排序:索引可以使排序更快,因为数据已经预排序,不需要再对整个表进行排序。
减少IO操作:有了索引,可以减少IO操作次数,减少硬盘的访问时间,提高性能。
保证数据的唯一性:可以为索引列添加唯一约束,从而保证数据的唯一性。
方便查询优化器优化查询计划:优化器可以通过分析索引来优化查询计划,从而进一步提高查询速度。
索引的缺点:
占用空间:索引需要占用磁盘空间,如果索引列很多,可能会占用大量磁盘空间。
增加写操作的成本:索引会增加写操作的成本,因为每次修改数据都需要更新索引。
维护索引的成本:如果表中的数据频繁修改,那么维护索引的成本也会相应增加。
不适用于小表:对于小表来说,索引可能会增加查询成本,因为全表扫描比使用索引更快。
可能导致查询性能下降:在某些情况下,使用索引可能会导致查询性能下降,如使用了过多的索引、使用了不合适的索引等。
需要注意的是,在设计索引时需要根据具体情况进行选择和权衡,不能盲目添加索引。如果添加了过多或不合适的索引,反而会降低查询性能。因此,需要结合业务场景和查询需求进行索引设计和优化。
3、索引使用场景(重点)
4、索引有哪几种类型?
5、索引的数据结构(b树,hash)
6、索引的基本原理
7、索引算法有哪些?
8、索引设计的原则?
9、创建索引的原则(重中之重)
10、创建索引的三种方式,删除索引
11、创建索引时需要注意什么?
12、使用索引查询一定能提高查询的性能吗?为什么
13、百万级别或以上的数据如何删除
14、前缀索引
15、什么是最左前缀原则?什么是最左匹配原则
16、B树和B+树的区别
17、使用B树的好处
18、使用B+树的好处
19、Hash索引和B+树所有有什么区别或者说优劣呢?
20、数据库为什么使用B+树而不是B树
21、B+树在满足聚簇索引和覆盖索引的时候不需要回表查询数据,
22、什么是聚簇索引?何时使用聚簇索引与非聚簇索引
23、非聚簇索引一定会回表查询吗?
24、联合索引是什么?为什么需要注意联合索引中的顺序?
Last updated