什么是索引?

作者&投稿:扶食 (若有异议请与网页底部的电邮联系)
什么是索引?索引类型有几种,各有什么特点?~

索引:一种存储结构

主索引: 通常是唯一的,用于搜索目录的唯一标识.

索引

使用索引可快速访问数据库表中的特定信息。索引是对数据库表中一列或多列的值进行排序的一种结构,例如 employee 表的姓(lname)列。如果要按姓查找特定职员,与必须搜索表中的所有行相比,索引会帮助您更快地获得该信息。

索引提供指向存储在表的指定列中的数据值的指针,然后根据您指定的排序顺序对这些指针排序。数据库使用索引的方式与您使用书籍中的索引的方式很相似:它搜索索引以找到特定值,然后顺指针找到包含该值的行。

在数据库关系图中,您可以在选定表的“索引/键”属性页中创建、编辑或删除每个索引类型。当保存索引所附加到的表,或保存该表所在的关系图时,索引将保存在数据库中。

注意并非所有的数据库都以相同的方式使用索引。作为通用规则,只有当经常查询索引列中的数据时,才需要在表上创建索引。索引占用磁盘空间,并且降低添加、删除和更新行的速度。在多数情况下,索引用于数据检索的速度优势大大超过它的不足之处。但是,如果应用程序非常频繁地更新数据或磁盘空间有限,则可能需要限制索引的数量。

可以基于数据库表中的单列或多列创建索引。多列索引使您可以区分其中一列可能有相同值的行。

如果经常同时搜索两列或多列或按两列或多列排序时,索引也很有帮助。例如,如果经常在同一查询中为姓和名两列设置判据,那么在这两列上创建多列索引将很有意义。

确定索引的有效性:

检查查询的 WHERE 和 JOIN 子句。在任一子句中包括的每一列都是索引可以选择的对象。

对新索引进行试验以检查它对运行查询性能的影响。

考虑已在表上创建的索引数量。最好避免在单个表上有很多索引。

检查已在表上创建的索引的定义。最好避免包含共享列的重叠索引。

检查某列中唯一数据值的数量,并将该数量与表中的行数进行比较。比较的结果就是该列的可选择性,这有助于确定该列是否适合建立索引,如果适合,确定索引的类型。

索引用来快速地寻找那些具有特定值的记录,所有MySQL索引都以B-树的形式保存。如果没有索引,执行查询时MySQL必须从第一个记录开始扫描整个表的所有记录,直至找到符合要求的记录。表里面的记录数量越多,这个操作的代价就越高。如果作为搜索条件的列上已经创建了索引,MySQL无需扫描任何记录即可迅速得到目标记录所在的位置。如果表有1000个记录,通过索引查找记录至少要比顺序扫描记录快100倍。

索引的类型

MySQL提供多种索引类型供选择:

普通索引

这是最基本的索引类型,而且它没有唯一性之类的限制。普通索引可以通过以下几种方式创建:

创建索引,例如CREATE INDEX <索引的名字> ON tablename (列的列表);
修改表,例如ALTER TABLE tablename ADD INDEX [索引的名字] (列的列表);
创建表的时候指定索引,例如CREATE TABLE tablename ( [...], INDEX [索引的名字] (列的列表) );

唯一性索引

这种索引和前面的“普通索引”基本相同,但有一个区别:索引列的所有值都只能出现一次,即必须唯一。唯一性索引可以用以下几种方式创建:

创建索引,例如CREATE UNIQUE INDEX <索引的名字> ON tablename (列的列表);
修改表,例如ALTER TABLE tablename ADD UNIQUE [索引的名字] (列的列表);
创建表的时候指定索引,例如CREATE TABLE tablename ( [...], UNIQUE [索引的名字] (列的列表)
);

主键

主键是一种唯一性索引,但它必须指定为“PRIMARY KEY”。如果你曾经用过AUTO_INCREMENT类型的列,你可能已经熟悉主键之类的概念了。主键一般在创建表的时候指定,例如“CREATE TABLE tablename ( [...], PRIMARY KEY (列的列表) ); ”。但是,我们也可以通过修改表的方式加入主键,例如“ALTER TABLE tablename ADD PRIMARY KEY (列的列表); ”。每个表只能有一个主键。

全文索引

MySQL从3.23.23版开始支持全文索引和全文检索。在MySQL中,全文索引的索引类型为FULLTEXT。全文索引可以在VARCHAR或者TEXT类型的列上创建。它可以通过CREATE TABLE命令创建,也可以通过ALTER TABLE或CREATE INDEX命令创建。对于大规模的数据集,通过ALTER TABLE(或者CREATE INDEX)命令创建全文索引要比把记录插入带有全文索引的空表更快。本文下面的讨论不再涉及全文索引,要了解更多信息,请参见MySQL documentation。

单列索引与多列索引

索引可以是单列索引,也可以是多列索引。下面我们通过具体的例子来说明这两种索引的区别。假设有这样一个people表:

CREATE TABLE people ( peopleid SMALLINT NOT NULL AUTO_INCREMENT, firstname CHAR(50)
NOT NULL, lastname CHAR(50) NOT NULL, age SMALLINT NOT NULL, townid SMALLINT NOT
NULL, PRIMARY KEY (peopleid) );

索引
使用索引可快速访问数据库表中的特定信息。索引是对数据库表中一列或多列的值进行排序的一种结构,例如 employee 表的姓(lname)列。如果要按姓查找特定职员,与必须搜索表中的所有行相比,索引会帮助您更快地获得该信息。

索引提供指向存储在表的指定列中的数据值的指针,然后根据您指定的排序顺序对这些指针排序。数据库使用索引的方式与您使用书籍中的索引的方式很相似:它搜索索引以找到特定值,然后顺指针找到包含该值的行。

在数据库关系图中,您可以在选定表的“索引/键”属性页中创建、编辑或删除每个索引类型。当保存索引所附加到的表,或保存该表所在的关系图时,索引将保存在数据库中。

注意 并非所有的数据库都以相同的方式使用索引。作为通用规则,只有当经常查询索引列中的数据时,才需要在表上创建索引。索引占用磁盘空间,并且降低添加、删除和更新行的速度。在多数情况下,索引用于数据检索的速度优势大大超过它的不足之处。但是,如果应用程序非常频繁地更新数据或磁盘空间有限,则可能需要限制索引的数量。

可以基于数据库表中的单列或多列创建索引。多列索引使您可以区分其中一列可能有相同值的行。

如果经常同时搜索两列或多列或按两列或多列排序时,索引也很有帮助。例如,如果经常在同一查询中为姓和名两列设置判据,那么在这两列上创建多列索引将很有意义。

确定索引的有效性:

检查查询的 WHERE 和 JOIN 子句。在任一子句中包括的每一列都是索引可以选择的对象。

对新索引进行试验以检查它对运行查询性能的影响。

考虑已在表上创建的索引数量。最好避免在单个表上有很多索引。

检查已在表上创建的索引的定义。最好避免包含共享列的重叠索引。

检查某列中唯一数据值的数量,并将该数量与表中的行数进行比较。比较的结果就是该列的可选择性,这有助于确定该列是否适合建立索引,如果适合,确定索引的类型。


索引是什么
索引,是将文献中具有检索意义的事项(可以是人名、地名、词语、概念、或其他事项)按照一定方式有序编排起来,以供检索的工具书。如《五胡十六国论著索引》。在数据库中,如Oracle、Informix、Sybase、DB2等关系数据库中尤其重要,与上面的意义类似,可以大大提高数据库的各项性能,如查询等。是数据库应用...

什么是索引?索引有什么作用
索引是根据一定需要,把书刊中的主要概念或各种题名摘录下来,标明出处、页码,按一定次序分条排列,以供人查阅的资料。它是图书中重要内容的地址标记和查阅指南。设计科学编辑合理的索引不但可以使阅读者倍感方便,而且也是图书质量的重要标志之一。WORD就提供了图书编辑排版的索引功能,现将其使用方法介绍如下...

索引是什么意思
索引意思如下:1、索引指按照一定的顺序或分类将信息进行整理和归纳,以便于查找和使用的一种工具。它通常包括关键词、页码、分类等信息,使得用户可以迅速地找到所需的内容。索引相当于书本的目录,方便查阅各个表中的信息。在数据库中,索引是一种单独的、物理的对数据库表中一列或多列的值进行排序的...

索引是什么 索引简述
1、在关系数据库中,索引是一种单独的、物理的对数据库表中一列或多列的值进行排序的一种存储结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。索引的作用相当于图书的目录,可以根据目录中的页码快速找到所需的内容。2、索引提供指向存储在表的指定列...

什么是索引?数据库中有哪些索引?各有什么特点?
索引是一种数据库对象,它能够加快数据检索的速度。索引相当于一个指向表中数据的指针,通过创建索引,可以显著提高数据库查询的性能。在数据库中,常见的索引类型有多种,每种都有其特定的使用场景和特点。首先是B树索引,这是最常见的一种索引。B树索引能够保持数据有序,并且通过树形结构来快速定位数据...

什么是索引?索引类型有几种,各有什么特点?
索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。是一种单独的、物理的对数据库表中一列或多列的值进行排序的一种存储结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。索引有三种类型:唯一索引:唯一...

什么叫索引?索引的作用和分类
1、唯一索引 唯一索引是不允许其中任何两行具有相同索引值的索引。当现有数据中存在重复的键值时,大多数数据库不允许将新创建的唯一索引与表一起保存。2、主键索引 数据库表经常有一列或多列组合,其值唯一标识表中的每一行。该列称为表的主键。在数据库关系图中为表定义主键将自动创建主键索引,主键...

索引是什么意思啊?
1. 书籍中的索引:在书籍中,索引通常位于书的末尾,作为整本书的目录指引。它列出了书中所有重要的主题或关键词,并指出这些主题或关键词在书中的页码位置。这样,读者可以通过索引迅速找到他们需要的信息。2. 数据库中的索引:在计算机数据库中,索引是一种数据结构,用于快速检索数据。数据库中的索引...

什么叫索引
索引是一种数据结构,用于帮助快速查找数据。索引是一个数据库或文本中的关键组成部分。以下是关于索引的详细解释:1. 索引的基本定义。在计算机科学和信息技术领域,索引是一个数据结构,其主要目的是提高数据检索的速度。通过创建索引,系统能够快速地定位到数据的位置,而无需进行全表扫描或线性搜索。2....

什么是索引
索引是一种数据结构或查询方式。索引是一个数据库或数据系统中的关键组成部分。以下是关于索引的详细解释:1. 索引的基本定义。索引是一个数据结构,它提高了数据检索的速度。在数据库或文本中,索引可以看作是一个包含数据位置信息的参考列表。通过索引,用户可以快速找到特定数据的位置,而不必逐一检查...

广饶县18094406733: 索引(数据库术语) - 搜狗百科
线骂天晴: 索引 suǒyǐn根据一定需要,把书刊中的主要内容或各种题名摘录下来,标明出处、页码,按一定次序分条排列,以供人查阅的资料.也叫“引得”.

广饶县18094406733: 什么是索引? -
线骂天晴: 书的索引:索引是将书籍或报刊中的内容或项目摘记下来,编成简括的书目,按一定顺序排列,并注明出处

广饶县18094406733: 索引是什么 -
线骂天晴: 索引,[1]使用索引可快速访问数据库表中的特定信息.索引是对数据库表中一列或多列的值进行排序的一种结构,例如 employee 表的姓名(name)列.如果要按姓查找特定职员,与必须搜索表中的所有行相比,索引会帮助您更快地...

广饶县18094406733: 数据库中的索引是什么意思?有什么用途 -
线骂天晴: 索引是一种单独的、物理的对数据库表中一列或多列的值进行排序的一种存储结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单.索引的作用相当于图书的目录,可以根据目录中的页码快速找...

广饶县18094406733: 网页索引是什么意思 -
线骂天晴: 索引,使用索引可快速访问数据库表中的特定信息.索引是对数据库表中一列或多列的值进行排序的一种结构. 在关系数据库中,索引是一种与表有关的数据库结构,它可以使对应于表的SQL语句执行得更快.索引的作用相当于图书的目录,...

广饶县18094406733: 索引是什么意思? -
线骂天晴: 索引(英语:Index),又称引得,通检,备检,是一本书籍的重要组成部分,它把书中的重要名词列罗列出来,并给出它们相应的页码,方便读者快速查找该名词的定义和含义.

广饶县18094406733: 索引是什么? -
线骂天晴:[答案] 1.数据库引入了索引用户对数据库最频繁的操作是进行数据查询.一般情况下,数据库在进行查询操作时需要对整个表进行数据搜索.当表中的数据很多时,搜索数据就需要很长的时间,这就造成了服务器的资源浪费.为了提高检索数...

广饶县18094406733: 什么是索引?索引类型有几种,各有什么特点? -
线骂天晴:[答案] 索引是对数据库表中一列或多列的值进行排序的一种结构,例如 employee 表的姓(name)列.如果要按姓查找特定职员,与必须搜索表中的所有行相比,索引会帮助您更快地获得该信息. 索引是一个单独的、物理的数据库结构,它是某个表中一列或...

广饶县18094406733: 建立索引是什么意思 -
线骂天晴: 索引是一种特殊的查询表,可以被数据库搜索引擎用来加速数据的检索.简单说来,索引就是指向表中数据的指针.数据库的索引同书籍后面的索引非常相像. 例如,如果想要查阅一本书中与某个特定主题相关的所有页面,你会先去查询索引(...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网