索引是一种特殊的数据库结构,能够用来快速查询数据库表中的特定记录。索引是提升数据库性能的重要方式。索引建立在表上,是对数据库表中一列或多列的值进行排序的一种结构。能够提升查询速度。MySQL中,全部的数据类型均可以被索引。sql
增长查询速度数据库
利用索引的惟一性来控制记录的惟一性性能
下降查询中分组和排序的时间设计
能够加速表与表之间的链接排序
存储索引占用磁盘空间索引
执行数据修改操做(INSERT、UPDATE、DELETE)产生索引维护table
每次修改表结构都须要重建索引效率
普通索引:这是最基本的索引,它没有任何限制。基础
唯一性索引:与普通索引相似,不一样的就是:索引列的值必须惟一,但容许有空值(注意和主键不一样)数据类型
全文索引:MySQL从3.23.23版开始支持全文索引和全文检索,FULLTEXT索引仅可用于 MyISAM 表;
单列索引、多列索引
–建立普通索引:
create index 索引名称 on 表名(列)
alter table 表名 add index 索引名称 (列)
–建立惟一索引:
create unique index 索引名称 on 表名(列名)
alter table 表名 add unique index 索引名称 (列)
为了使索引的使用效率更高,在建立索引的时候必须考虑在哪些字段上建立索引和建立什么类型的索引。
a) 选择唯一性索引
b) 为常常须要排序、分组和联合操做的字段创建索引
c) 为常做为查询条件的字段创建索引
d) 限制索引的数目
e) 尽可能使用数据量少的索引
f) 尽可能使用前缀来索引
g) 删除再也不使用或者不多使用的索引