索引

索引的介绍 :
索引是 MySQL 数据库中的重要对象之一,用于快速找出某个列中有某一特定值的 行。
为什么要使用索引
索引是 MySQL 中一种十分重要的数据库对象。它是数据库性能调优技术的基础, 常用于实现数据的快速检索。 索引就是根据表中的一列或若干列按照一定顺序建立的列值与记录行之间的对应关系表,实 质上是一张描述索引列的列值与原表中记录行之间一一对应关系的有序表。
索引的分类 从数据结构角度
1、B+树索引(O(log(n))):关于 B+树索引,可以参考 MySQL 索引背后的数据结构及算 法原理
2、hash 索引: a 仅仅能满足"=",“IN"和”<=>"查询,不能使用范围查询 b 其检索效率非常高,索引的检索可以一次定位,不像 B-Tree 索引需要从根节点到枝节点, 最后才能访问到页节点这样多次的 IO 访问,所以 Hash 索引的查询效率要远高于 B-Tree 索 引c 只有 Memory 存储引擎显示支持 hash 索引
3、FULLTEXT 索引(现在 MyISAM 和 InnoDB 引擎都支持了)
4、R-Tree 索引(用于对 GIS 数据类型创建 SPATIAL 索引) 从物理存储角度 1、聚集索引(clustered index) 2、非聚集索引(non-clustered index) 从逻辑角度 1、主键索引:主键索引是一种特殊的唯一索引,不允许有空值 2、普通索引或者单列索引 3、多列索引(复合索引):复合索引指多个字段上创建的索引,只有在查询条件中 使用了创建索引时的第一个字段,索引才会被使用。使用复合索引时遵循最左前缀集合 4、唯一索引或者非唯一索引 5、全文索引:全文索引是对空间数据类型的字段建立的索引,MYSQL 中的空间数 据类型有 4 种,分别GEOMETRY、POINT、LINESTRING、POLYGON。
4.索引的优点 创建唯一性索引,保证数据库表中每一行数据的唯一性 大大加快数据的检索速度,这也是创建索引的最主要的原因 加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。 在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。 通过使用索引,可以在查询的过程中使用优化隐藏器,提高系统的性能。
5.索引的缺点 创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加 索引需要占物理空间,除了数据表占数据空间之外,每一个索引还要占一定的物理空间, 如果要建立聚簇索引,那么需要的空间就会更大 当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,降低了数据的维 护速度
6. 索引只是提高效率的一个因素,因此在建立索引的时候应该遵循以下原则: 在经常需要搜索的列上建立索引,可以加快搜索的速度。 在作为主键的列上创建索引,强制该列的唯一性,并组织表中数据的排列结构。 在经常使用表连接的列上创建索引,这些列主要是一些外键,可以加快表连接的速 度。 在经常需要根据范围进行搜索的列上创建索引,因为索引已经排序,所以其指定的 范围是连续的。 在经常需要排序的列上创建索引,因为索引已经排序,所以查询时可以利用索引的 排序,加快排序查询。 在经常使用 WHERE 子句的列上创建索引,加快条件的判断速度。

©️2020 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页