三、索引

1、什么是索引?

在数据库中,索引(Index)是一种特殊的数据结构,用于加快数据库表的查询速度。它们可以看作是对表中某一列或多列的引用,加速查询,类似于书中的目录。

通常情况下,数据库表中会有很多行数据,如果要查找其中符合特定条件的行,那么需要进行一次全表扫描,时间复杂度为O(n)。而有了索引,查询就可以通过类似二分查找的方式快速定位到符合条件的数据,从而大大缩短了查询时间。

索引可以在创建表的时候定义,也可以在表创建后添加,常见的索引类型包括B+树索引、哈希索引、全文索引等。其中B+树索引是最常见和常用的索引类型,适用于大多数场景。

需要注意的是,虽然索引可以加快查询速度,但同时也会增加数据的写入和更新的成本,因为每次数据的修改都需要更新索引。因此,在设计索引时需要平衡查询效率和数据修改成本,并根据具体业务场景和查询需求选择合适的索引策略。

2、索引有哪些优缺点?

索引的优点:

  1. 提高查询速度:通过使用索引,查询可以快速定位到符合条件的数据,从而大大提高查询速度。

  2. 加速排序:索引可以使排序更快,因为数据已经预排序,不需要再对整个表进行排序。

  3. 减少IO操作:有了索引,可以减少IO操作次数,减少硬盘的访问时间,提高性能。

  4. 保证数据的唯一性:可以为索引列添加唯一约束,从而保证数据的唯一性。

  5. 方便查询优化器优化查询计划:优化器可以通过分析索引来优化查询计划,从而进一步提高查询速度。

索引的缺点:

  1. 占用空间:索引需要占用磁盘空间,如果索引列很多,可能会占用大量磁盘空间。

  2. 增加写操作的成本:索引会增加写操作的成本,因为每次修改数据都需要更新索引。

  3. 维护索引的成本:如果表中的数据频繁修改,那么维护索引的成本也会相应增加。

  4. 不适用于小表:对于小表来说,索引可能会增加查询成本,因为全表扫描比使用索引更快。

  5. 可能导致查询性能下降:在某些情况下,使用索引可能会导致查询性能下降,如使用了过多的索引、使用了不合适的索引等。

需要注意的是,在设计索引时需要根据具体情况进行选择和权衡,不能盲目添加索引。如果添加了过多或不合适的索引,反而会降低查询性能。因此,需要结合业务场景和查询需求进行索引设计和优化。

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