什么是索引
索引是满足某种特定查询算法的数据结构,而这些数据结构会以某种方式指向数据,从而实现高效查找数据。
为什么需要索引
用于提升数据库的查找速度。
使用索引的优缺点
优点:
唯一索引可以保证数据库表中每一行的数据的唯一性。
索引可以加快数据查询速度,减少查询时间。 缺点:
创建索引和维护索引要耗费时间。
索引需要占物理空间,除了数据表占用数据空间之外,每一个索引还要占用一定的物理空间。
以表中的数据进行增、删、改的时候,索引也要动态的维护。
各种索引
主键索引: 数据列不允许重复,不允许为NULL,一个表只能有一个主键。
唯一索引: 数据列不允许重复,允许为NULL值,一个表允许多个列创建唯一索引。
普通索引: 基本的索引类型,没有唯一性的限制,允许为NULL值。
全文索引:是目前搜索引擎使用的一种关键技术,对文本的内容进行分词、搜索。
覆盖索引:查询列要被所建的索引覆盖,不必读取数据行。
组合索引:多列值组成一个索引,用于组合搜索,效率大于索引合并。
B+树作为数据库索引的原因
很适合磁盘存储,能够充分利用局部性远离,磁盘预读。
很低的树高度,能够存储大量数据。
索引本身占用的内存很小。
能够很好的支持单点查询,范围查询,有序性查询。