挑重点讲,我们需要了解的就5个,用红颜色标记了的,如果想深入了解,可以去查查该方面的资料,我个人觉得,这些等以后实际工作中遇到了在做详细的了解把。
Table:创建索引的表
Non_unique:表示索引非唯一,1代表 非唯一索引, 0代表 唯一索引,意思就是该索引是不是唯一索引
Key_name:索引名称
Seq_in_index 表示该字段在索引中的位置,单列索引的话该值为1,组合索引为每个字段在索引定义中的顺序(这个只需要知道单列索引该值就为1,组合索引为别的)
Column_name:表示定义索引的列字段
Sub_part:表示索引的长度
Null:表示该字段是否能为空值
Index_type:表示索引类型
4.1.2.1、为表添加索引
就拿上面的book表来说。本来已经有了一个year_publication,现在我们为该表在加一个普通索引
ALTER TABLE book ADD INDEX BkNameIdx(bookname(30));
看输出结果,就能知道,添加索引成功了。
这里只是拿普通索引做个例子,添加其他索引也是一样的。依葫芦画瓢而已。这里就不一一做讲解了。
4.1.2.2、使用CREATE INDEX创建索引。
格式:CREATE [UNIQUE|FULLTEXT|SPATIAL] [INDEX|KEY] 索引名称 ON 表名(创建索引的字段名[length])[ASC|DESC]
解释:其实就是换汤不换药,格式改变了一下而已,做的事情跟上面完全一样,做一个例子。
在为book表增加一个普通索引,字段为authors。
CREATE INDEX BkBookNameIdx ON book(bookname);
SHOW INDEX FROM book\G; //查看book表中的索引
解释:第一条截图没截到,因为图太大了,这里只要看到有我们新加进去的索引就证明成功了。。其他索引也是一样的创建。
4.2、删除索引
前面讲了对一张表中索引的添加,查询的方法。
添加的两种方式
1在创建表的同时如何创建索引,
2在创建了表之后如何给表添加索引的两种方式,
查询的方式
SHOW INDEX FROM 表名\G; \G只是让输出的格式更好看
现在来说说如何给表删除索引的两种操作。
格式一:ALTER TABLE 表名 DROP INDEX 索引名。
很简单的语句,现在通过一个例子来看看,还是对book表进行操作,删除我们刚才为其添加的索引。
1、删除book表中的名称为BkBookNameIdx的索引。
ALTER TABLE book DROP INDEX BkBookNameIdx;
SHOW INDEX FROM book\G; //在查看book表中的索引,就会发现BkBookNameIdx这个索引已经不在了
格式二:DROP INDEX 索引名 ON 表名;
删除book表中名为BkNameIdx的索引
DROP INDEX BkNameIdx ON book;
SHOW INDEX FROM book\G;
五、总结
MySQL的索引到这里差不多就讲完了,总结一下我们到目前为止应该知道哪些东西
1、索引是干嘛的?为什么要有索引?
这个很重要,需要自己理解一下,不懂就看顶部的讲解
2、索引的分类
3、索引的操作
给表中创建索引,添加索引,删除索引,删除索引
Linux公社的RSS地址:https://www.linuxidc.com/rssFeed.aspx