您的位置:首页 > 数据库 > MySQL

MySQL学习总结(三)索引

2016-05-26 13:08 716 查看
补充一下,上一章节中约束的一点东西。我们在为约束设置名称的时候(标识符)推荐写法“约束缩写_字段名”,这样让人看起来就会很清晰。例如:FK_Deptno,我们通过索引的名字就可以大概知道这是一个设置的关于Deptno字段的外键。

一个索引包含表中按照一定顺序排序的一列或者多列字段。创建索引主要是为了提高从表中检索数据的速度。但是创建索引有利也有弊,优点是通过索引,可以提高查询的速度。但是过多的创建索引会占据许多的磁盘空间,因此在创建索引的时候一定要权衡利弊。

以下情况适合创建索引:


(1)经常被查询的字段

(2)经常出现在分组中的字段

(3)表的主键或者是外键字段

(4)设置唯一完整性约束的字段


以下情况不适合创建索引:


(1)在查询中很少被使用的字段

(2)拥有许多重复的值的字段


索引名在设置的时候,建议“index_字段名”,这样看起来很清晰。

索引根据创建方式又可以分为两类,自动索引和手动索引。通过名称我们可以简单的理解,自动索引就是自动创建的索引(和废话一样。。),在设置表的主键或者其他设置完整性约束的时候,MySQL系统会自动创建索引。而手动索引,指的是我们主动在表上创建的索引,如下图所示:





1、创建索引


1.1 、创建普通索引



CREATE TABLE table_name(

属性名 数据类型,

属性名 数据类型,



INDEX 索引名(属性名1)

)



1.2、在已经存在的表上创建普通索引

CREATE INDEX 索引名 ON 表名 (属性名)



1.3、ALTER TABLE创建普通索引

ALTER TABLE table_name ADD INDEX 索引名 (属性名)



2、创建唯一索引


唯一索引,就是在创建索引的时候,限制索引值必须是唯一值,通过该类型的索引可以更快的查询某条记录。



2.1 、创建表时创建唯一索引



CREATE TABLE table_name(

属性名 数据类型,

属性名 数据类型,



UNIQUE INDEX 索引名(属性名1)

)



2.2、在已经存在的表上创建唯一索引

CREATE UNIQUE INDEX 索引名 ON 表名 (属性名)



2.3、ALTER TABLE创建唯一索引

ALTER TABLE table_name ADD UNIQUE INDEX 索引名 (属性名)




注意:创建唯一索引的时候,如果表中该字段有为空值的时候,则唯一索引会创建失败。


3、创建全文索引


全文索引主要关联在数据库中数据类型为CHAR、VARCHAR、TEXT的字段上,以便能够更加快速的查询数据量较大的字符串类型的字段。



3.1 、创建表时创建全文索引

CREATE TABLE table_name(

属性名 数据类型,

属性名 数据类型,



FULLTEXT INDEX 索引名(属性名1)

)

3.2、在已经存在的表上创建全文索引

CREATE FULLTEXT INDEX 索引名 ON 表名 (属性名)

3.3、ALTER TABLE创建全文索引

ALTER TABLE table_name ADD FULLTEXT INDEX 索引名 (属性名)



4、通过SQLyog创建索引


右键要创建索引的表,选择改变表菜单,点击“2个索引”,如下图所示:





通过SQLyog软件,我们可以更加方便快捷的创建索引。而且界面也很简单,易上手。



5、删除索引


SQL语法:DROP INDEX index_name ON table_name;

通过SQLyog软件,在表——>索引,点击节点前面的加号,选中要删除的索引,右键选择“删除索引”,根据提示选择是,成功删除,如图:








或在改变表的索引列下删除,上面已经介绍过。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: