mysql创建索引c_mysql创建索引

MySQL当中有许多的数据结构,小编在前面的文章当中都有给大家介绍过。今天小编就给大家介绍一下MySQL当中的索引,索引指的就是一个高效组织的数据结构,它能够有效的提高数据检索的速度。

(一)MySQL索引简介

索引的存放位置:对于Innodb储存引擎的表来说,索引会按照MySQL进行配置,然后集中存放在相同的文件中。然而,对于Myisam储存引擎的表来说,索引信息就会单独储存在表的.MYI文件当中。

2a318c94f580a64e1cafd6c62bf4d4d3.png

Index文件不只储存了需要查询的数据的索引值,索引值下面还有该索引对应数据的指针信息,指向数据库文件真实数据的位置。就是说索引就等于书本的目录章节以及对应页码,数据库能按照章节标题以及页码寻找对应的数据,就可以加快查询速度。

以为MySQL的常用索引:

(1)普通索引

(2)主键索引

(3)唯一索引

(4)全文索引

(5)多列索引

通常,把索引添加在查询频繁并且重复度低的列上面,主键索引还有唯一的索引就是"主键约束"还有"Unique约束",这两种为特殊索引。

(二)索引实例

(1)普通索引

普通索引的创建,如下:

19ac7e26fd93c050054c3c967e0fd92f.png

(2)主键索引

主键索引又称"主键约束",如下:

6fe9a6e0b9d0a804940ca09b640a04f1.png

(3)唯一索引

唯一索引又称为“Unique约束”",如下:

3de7fb82218175db16139ac9ce8e9505.png

(4)全文索引

全文索引只可以对空格分隔字符的语言环境有效,如英文是句子中每个单词中间都会有空格,但是中文字符间是没有空格的。然而,在MySQL5.6.4之前的版本中,只有Myisam引擎的表才支持全文索引。在MySQL5.6.10版本后,InnoDB也支持索引技术了,如下例:

b8d0eaaf89c61dcc79e68a35e09de307.png

(5)多列索引

有时,把数据分开储存就会便于管理,但有时又要把他们看成整体索引查询,这样就能用多列索引:

01beccd63339e7dd4963b58bac465f59.png

在查找过程中,不管列名称怎么前后排序,MySQL都可以正确的组合,还能用到正确的索引,首先多列索引中位于开头的那些数据要包含在里面。假设三段数据a,b,c都加入了多列索引keykeyName(a,b,c),只是bandc就不会主动使用多列索引。但是,只要包含a,后面不管是c还是b亦或是只有a,都可以主动用多列索引查询。

这就是数据库中"左前缀"的概念,要是数据‘ABCDEF’加入了索引,就查询前面ABC部分,数据库能够按照索引查找ABC开头的数据,而我们只知道DEF部分,数据库就不会主动的用索引查找,原因是索引中没有DEF开头的数据。

0d43c3d5ac7ab5645bfe11da2286fc91.png

(三)索引管理

(1)对表索引信息进行查看

29e9c337e9e36b10cc53b940c4bb2a45.png

(2)删除表索引信息

27810c9d37eed701f1621a922c46f694.png

(3)追加索引信息

a5298c88447efe927bd6bb24cc4e5c94.png

总结:要是Key是MUL,那么这一列的值可以重复,这一列是非唯一索引的前导列,即第一列或者是一个唯一性索引的组成部分但是可以含有空值NULL。

关于MySQL使用SQL语句为表中字段添加索引,本文就介绍这么多,希望对大家有所帮助,谢谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值