数据库数据库 索引索引
数据库数据库 索引索引
文章目录文章目录数据库 索引1、概述2、索引的种类3、索引的底层实现原理3.1 索引的基础知识3.1 索引提高检索速度3.3 哈希索引4、聚集索引与非聚集索引4.1 聚集索引4.2 非聚集索引4.3
覆盖索引5、索引的最左分配原则6、总结
1、概述、概述
1.1 什么是索引什么是索引
索引(Index)是帮助MySQL高效获取数据的数据结构。
1.2 创建索引的优点创建索引的优点
(1)创建唯一性索引,保证数据库表中每一行数据的唯一性。
(2)加快数据的检索速度,这也是创建索引的最主要的原因加快数据的检索速度,这也是创建索引的最主要的原因。
(3)减少磁盘减少磁盘IO(向字典一样可以直接定位)。
(4)通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能。
(5)加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。
1.3 数据库中创建索引的缺点数据库中创建索引的缺点
(1)创建索引和维护索引要耗费时间创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加。
(2)索引需要占用物理空间索引需要占用物理空间,特别是聚集索引,需要较大的空间。
(3)当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护增加、删除和修改的时候,索引也要动态的维护,这样就降低了数据的维护速度
2、索引的种类、索引的种类
索引是关系型数据库中给数据库表中一列或多列的值排序后的存储结构,SQL的主流索引结构有B+树以及Hash结构,聚集索引以及非聚集索引用的是B+树索引。这篇文章会总结
SQL Server以及MySQL的InnoDB和MyISAM两种SQL的索引。
SQL Sever索引类型有:唯一索引,主键索引,聚集索引,非聚集索引。
MySQL 索引类型有:唯一索引,主键(聚集)索引,非聚集索引,全文索引。
(1)普通索引
使用字段关键字建立的索引,主要是提高查询速度
(2)主键索引
数据记录里面不能有 null,数据内容不能重复,在一张表里面只能有一个主键索引。
(3)组合索引
多列值组成一个索引,专门用于组合搜索,其效率大于索引合并
(4)唯一索引
字段数据是唯一的,数据内容里面能否为 null,在一张表里面,是可
以添加多个唯一索引
(5)全文索引
对文本的内容进行分词,进行搜索。
3、索引的底层实现原理、索引的底层实现原理
3.1 索引的基础知识索引的基础知识
首先Mysql的基本存储结构是页(记录都存在页里边):