MySQL当中有许多的数据结构,小编在前面的文章当中都有给大家介绍过。今天小编就给大家介绍一下MySQL当中的索引,索引指的就是一个高效组织的数据结构,它能够有效的提高数据检索的速度。
(一)MySQL索引简介
索引的存放位置:对于Innodb储存引擎的表来说,索引会按照MySQL进行配置,然后集中存放在相同的文件中。然而,对于Myisam储存引擎的表来说,索引信息就会单独储存在表的.MYI文件当中。
Index文件不只储存了需要查询的数据的索引值,索引值下面还有该索引对应数据的指针信息,指向数据库文件真实数据的位置。就是说索引就等于书本的目录章节以及对应页码,数据库能按照章节标题以及页码寻找对应的数据,就可以加快查询速度。
以为MySQL的常用索引:
(1)普通索引
(2)主键索引
(3)唯一索引
(4)全文索引
(5)多列索引
通常,把索引添加在查询频繁并且重复度低的列上面,主键索引还有唯一的索引就是"主键约束"还有"Unique约束",这两种为特殊索引。
(二)索引实例
(1)普通索引
普通索引的创建,如下:
(2)主键索引
主键索引又称"主键约束",如下:
(3)唯一索引
唯一索引又称为“Unique约束”",如下:
(4)全文索引
全文索引只可以对空格分隔字符的语言环境有效,如英文是句子中每个单词中间都会有空格,但是中文字符间是没有空格的。然而,在MySQL5.6.4之前的版本中,只有Myisam引擎的表才支持全文索引。在MySQL5.6.10版本后,InnoDB也支持索引技术了,如下例:
(5)多列索引
有时,把数据分开储存就会便于管理,但有时又要把他们看成整体索引查询,这样就能用多列索引:
在查找过程中,不管列名称怎么前后排序,MySQL都可以正确的组合,还能用到正确的索引,首先多列索引中位于开头的那些数据要包含在里面。假设三段数据a,b,c都加入了多列索引keykeyName(a,b,c),只是bandc就不会主动使用多列索引。但是,只要包含a,后面不管是c还是b亦或是只有a,都可以主动用多列索引查询。
这就是数据库中"左前缀"的概念,要是数据‘ABCDEF’加入了索引,就查询前面ABC部分,数据库能够按照索引查找ABC开头的数据,而我们只知道DEF部分,数据库就不会主动的用索引查找,原因是索引中没有DEF开头的数据。
(三)索引管理
(1)对表索引信息进行查看
(2)删除表索引信息
(3)追加索引信息
总结:要是Key是MUL,那么这一列的值可以重复,这一列是非唯一索引的前导列,即第一列或者是一个唯一性索引的组成部分但是可以含有空值NULL。
关于MySQL使用SQL语句为表中字段添加索引,本文就介绍这么多,希望对大家有所帮助,谢谢!