索引的特点及分类

您所在的位置:网站首页 搜索引擎的三种类型有哪些特点 索引的特点及分类

索引的特点及分类

2024-07-14 01:11| 来源: 网络整理| 查看: 265

一.背景 学习了MySql的基本语句之后只是掌握了一个基本,但是想要对数据库有更高级的认识和了解,就还需要学习索引。

二.概念 先来说说索引的概念。索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。索引用于快速找出在某个列中有一特定值的行,不使用索引,MySQL必须从第一条记录开始读完整个表,直到找出相关的行,表越大,查询数据所花费的时间就越多,如果表中查询的列有一个索引,MySQL能够快速到达一个位置去搜索数据文件,而不必查看所有数据,那么将会节省很大一部分时间。

三.存储类型 MySQL中的索引的存储类型有两种:BTREE、HASH。

四.优点和缺点 优点: 1. 可以大大加快数据的查询速度 2. 可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。 3. 通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能。 4. 在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。 5. 通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。 缺点: 1.创建索引和维护索引要耗费时间,并且随着数据量的增加所耗费的时间也会增加。 2.索引也需要占空间,我们知道数据表中的数据也会有最大上线设置的,如果我们有大量的索引,索引文件可能会比数据文件更快达到上线值。 3.当对表中的数据进行增加、删除、修改时,索引也需要动态的维护,降低了数据的维护速度。

五.使用准则 索引并不是越多越好,对每个字段都建立索引更是不对的,需要在实际工作中根据需要合理的使用。 以下情况建议用索引: 1.对经常用于查询的字段应该创建索引。 2.在经常需要排序的列上创建索引,因为索引已经排序,这样查询可以利用索引的排序,加快排序查询时间。 3.在经常使用在WHERE子句中的列上面创建索引,加快条件的判断速度。 4.在经常用在连接的列上创建索引,这些列主要是一些外键,可以加快连接的速度。 5.在作为主键的列上创建索引,强制该列的唯一性和组织表中数据的排列结构。 以下情况不建议用索引: 1.经常增、删、改的表就避免对其进行过多的索引。 2.数据量小的表最好不要使用索引,因为由于数据较少,可能查询全部数据花费的时间比遍历索引的时间还要短,索引就可能不会产生优化效果。 3.对于那些定义为text, image和bit数据类型的列不应该增加索引。这是因为,这些列的数据量要么相当大,要么取值很少。 4.当修改性能远远大于检索性能时,不应该创建索引。这是因为,修改性能和检索性能是互相矛盾的。当增加索引时,会提高检索性能,但是会降低修改性能。当减少索引时,会提高修改性能,降低检索性能。因此,当修改性能远远大于检索性能时,不应该创建索引。

六.索引的分类 索引分为:单列索引(普通索引、唯一索引、主键索引)、组合索引、全文索引和空间索引。 1.单列索引 一个索引只包含单个列,但一个表中可以有多个单列索引。 (1)普通索引 MySQL中基本索引类型,没有什么限制,允许在定义索引的列中插入重复值和空值,纯粹为了查询数据更快一点。 (2)唯一索引 索引列中的值必须是唯一的,但是允许为空值。 (3)主键索引 是一种特殊的唯一索引,不允许有空值 2.组合索引 在表中的多个字段组合上创建的索引,只有在查询条件中使用了这些字段的左边字段时,索引才会被使用,使用组合索引时遵循最左前缀集合。 3.全文索引 只有在MyISAM引擎上才能使用,只能在CHAR,VARCHAR,TEXT类型字段上使用全文索引,介绍了要求,说说什么是全文索引,就是在一堆文字中,通过其中的某个关键字等,就能找到该字段所属的记录行 4.空间索引 空间索引是对空间数据类型的字段建立的索引,MySQL中的空间数据类型有四种,GEOMETRY、POINT、LINESTRING、POLYGON。在创建空间索引时,使用SPATIAL关键字。要求引擎为MyISAM,创建空间索引的列,必须将其声明为NOT NULL。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3