索引(Index)

1. 索引的作用

image.png

  • 如果把数据库看做字典,可以将索引的键看做是字典的拼音,值为该拼音所在的第一个汉字的位置,借助拼音检索可以缩小目标汉字查找范围,避免逐页查找。
  • 索引是一种以空间代价提升时间效率的方法。
  • 索引一旦创建,将由MySQL自动管理和维护,索引的维护需要消耗计算资源和存储资源,如何设计索引,是提升数据库使用效率的关键。

    2. 索引的类型

    可以从多种角度对索引进行分类:
    image.png

    3. 索引的设置原则

  1. 严格限制同一个表或视图上的索引数量。索引增多将会严重影响INSERT、UPDATE和DELETE语句的执行性能。对于表中使用频度较低或者不再使用的索引,需及时删除。
  2. 对于重复值较多的列,不建议建立索引。
  3. 对排序、分组或者表连接涉及的字段建立索引,可提升数据检索效率。
  4. 对视图建立索引将提升使用视图的检索效率。

    MySQL索引管理(MySQL Index)

    1. 索引的创建

    使用CREATE INDEX语句创建索引

    image.png
  • UNIQUE | FULLTEXT | SPATIAL为可选参数,用于指明索引类型。
  • ON关键字指明索引针对的表。
  • ASC和DESC表明索引的排序方式。
  • 当字段名称[(索引字符长度) [ASC | DESC]]只有一项时,将建立单列索引。当字段名称[(索引字符长度) [ASC | DESC]]有多项时,将建立复合索引。

image.png
image.png

创建表格时直接附带创建索引

image.png
image.png

通过ALTER TABLE 为已有表添加索引

image.png
image.png

2. 索引的查看

使用SHOW INDEX语句查看已有表或视图上的索引信息

image.png

3. 索引的删除

使用ALTER TABLE语句和DROP INDEX语句删除指定索引