MySQL基础之 索引

MySQL索引讲解

索引的好处:

  MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度。

  打个比方,如果合理的设计且使用索引的MySQL是一辆兰博基尼的话,那么没有设计和使用索引的MySQL就是一个人力三轮车。

  索引分单列索引和组合索引。单列索引,即一个索引只包含单个列,一个表可以有多个单列索引,但这不是组合索引。组合索引,即一个索引包含多个列。

  创建索引时,你需要确保该索引是应用在 SQL 查询语句的条件(一般作为 WHERE 子句的条件)。

  实际上,索引也是一张表,该表保存了主键与索引字段,并指向实体表的记录。

索引的缺点:

  过多的使用索引将会造成滥用。因此索引也会有它的缺点:虽然索引大大提高了查询速度,同时却会降低更新表的速度,如对表进行INSERT、UPDATE和DELETE。因为更新表时,MySQL不仅要保存数据,还要保存一下索引文件。

  建立索引会占用磁盘空间的索引文件。

创建索引的两种方式

1、创建新表的同时创建索引。

2、如果对已存在的表创建索引,使用CREATE INDEX命令或者ALTER TABLE命令

现在来分析这两种用法

一、创建新表的同时创建索引。

CREATE TABLE TABLE_NAME(字段名  数据类型  ,

              ................

              [UNIQUE  |   FULLTEXT  ]  INDEX  |  PRIMARY  KEY

              [INDEX_NAME](字段名)

)

UNIQUE  |  FULLTEXT  INDEX:这两个选取其中任意一个,比如选择UNIQUE  INDEX表示创建唯一索引,FULLTEXT  INDEX表示创建全文索引。也可以直接就写INDEX表示创建普通索引

PRIMARY  KEY:表示创建主键索引

INDEX_NAME:索引的名称。最后跟上一个字段名,表示对哪个字段创建的索引。

二、已存在的表使用CREATE INDEX命令或者ALTER TABLE命令

创建普通索引

1、CREATE INDX 

 CREATE  INDEX   INDEX_NAME   ON   TABLE_NAME(COLUMN_NAME)

 注释:COLUMN_NAME是要创建索引的列

 如果创建不止一个索引,多个COLUMN_NAME之间用逗号隔开即可

2、ALTER   TABLE 修改表结构(添加索引)

  ALTER   TABLE   TABLE_NAME   ADD   INDEX   INDEX_NAME(COLUMN_NAME)

3、删除索引

 DROP   INDEX   INDEXNAME   ON   TABLE_NAME

创建唯一索引

猜你喜欢

转载自www.cnblogs.com/FengGeBlog/p/9774179.html