MySQL索引

Posted 还行少年

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL索引相关的知识,希望对你有一定的参考价值。

一、数据库索引

1.索引的概念

  • 索引是一种特殊的概念
  • 数据库索引就是为了提高表的搜索效率而对某些字段中的值建立的目录

2.索引的作用

2.1 优势

  • 设置了合适的索引之后,可以大大加快数据的查询速度
  • 降低数据库的IO成本,降低数据库的排序成本
  • 通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性
  • 可以加快表和表之间的连接
  • 在使用分组和排序子句进行数据查询时,可以显著减少查询中分组和排序的时间

2.2 代价

  • 增加了数据库的存储空间
  • 插入和修改数据时要花费较多的时间

3.创建索引的原则依据

  • 表的主键、外键必须有索引。因为主键具有唯一性,外键关联的是子表的主键,查询时可以快速定位

  • 记录数超过300行的表应该有索引。如果没有索引,需要把表遍历一遍,会严重影响数据库的性能

  • 经常与其他表进行连接的表,在连接字段上应该建立索引

  • 唯一性太差的字段不适合建立索引

  • 更新太频繁地字段不适合创建索引

  • 经常出现在 where 子句中的字段,特别是大表的字段,应该建立索引

  • 索引应该建在选择性高的字段上

  • 索引应该建在小字段上,对于大的文本字段甚至超长字段,不要建索引

4.索引的分类和创建

4.1 普通索引

最基本的索引类型,没有唯一性之类的限制

4.1.1 创建表的时候指定索引

在这里插入图片描述

4.1.2 直接创建索引

在这里插入图片描述

4.1.3 修改表的方式创建索引

在这里插入图片描述

4.2唯一性索引

和‘普通索引’基本相似,但是索引列的所有值只能出现一次,即必须唯一

4.2.1 创建表的时候指定索引

在这里插入图片描述

4.2.2 直接创建索引

在这里插入图片描述

4.2.3 修改表的方式创建索引

在这里插入图片描述

4.3 主键索引

创建主键时将自动创建主键索引

4.3.1 创建表的时候指定索引

在这里插入图片描述

4.3.2 修改表的方式创建索引

在这里插入图片描述

4.4 全文索引

索引类型为FULLTEXT,可以在char,varchar,text类型的列上创建

4.4.1 创建表的时候指定索引

在这里插入图片描述

4.4.2 直接创建索引

在这里插入图片描述

4.4.3 修改表的方式创建索引

在这里插入图片描述

4.5 单列索引和多列索引

可以在单列上创建索引,也可以在多列上创建的索引

4.5.1 创建表的时候指定索引

在这里插入图片描述

4.5.2 修改表的方式创建索引

在这里插入图片描述

5.查看索引

在这里插入图片描述
在这里插入图片描述

6.删除索引

6.1 直接删除索引

在这里插入图片描述

6.2 修改表方式删除索引

在这里插入图片描述

6.3 删除主键索引

在这里插入图片描述

以上是关于MySQL索引的主要内容,如果未能解决你的问题,请参考以下文章

mysql索引类型和索引方式

mysql 索引

mysql索引(九)索引合并

mysql---索引优化

MySQL索引

mysql索引?