MySQL 索引篇
借鉴出处:https://blog.csdn.net/superit401/article/details/51291603
章节目录
- 索引的好处
- 索引的坏处
- 什么情况下添加索引
- 什么情况下不添加索引
- 索引的添加方式
1、索引的好处
- 通过建立唯一索引可以保证每一行数据的唯一性
- 可以大大增加数据的检索速度,也就是创建索引的最主要的原因
- 可以加速表与表的连接,特别是在实现数据的参考完整性方面有重要意义
- 在实用分组和排序子句进行数据检索时,同样也可以减少分组和排序的时间
- 通过实用索引,可以在查询的过程中,实用优化隐藏器,提高系统的性能
2、索引的坏处
第一、创建索引和维护索引消耗时间,这种时间随着数据量的增加而增加
第二、索引需要占物理空间,除了占数据表和占数据空间外,每一个索引还要占一定的物理空间,如果要建立聚簇索引,那么需要的空间就会更大。
第三、当对表中的数据进行增加,修改和删除时索引也要动态的维护,这样就降低了数据的维护速度
3、什么样的字段适合建索引
第一、经常要用到的列上面,可以加快搜索的速度
第二、在作为主键的列上,强制该键的唯一性和组织表中数据的排序结构
第三、在经常用到的连接的列上,这些列主要是一些外键。可以加快连接的速度
第四、在经常需要根据范围进行搜索的列上创建索引,因为索引已经排序,其指定的范围是连续的
第五、在经常需要排序的列上,创建索引,因为索引已经排序,这样查询可以利用索引的排序,加快排序查询时间
第六、在经常使用在WHERE子句中的列上面创建索引,加快条件的判断速度
4、什么情况下不添加索引
第一、对于那些在查询中很少使用或者参考的列不应该创建索引。因为这些列很少使用,不具备创建索引的价值
第二、对于那些只有很少数据值的列不应该增加索引。因为这些列的取值很少,例如人事表的性别列,在查询的结果中,结果集的数据行占了表中数据行的很大比例,即需要在表中搜索的数据行的比列很大。
第三、对于那些定义为text,image和bit数据类型的列不应该增加索引,这是因为,这些列的数据量要么相当大,要么取值很少
第四、当修改性能远远大于检索性能时,不应该创建索引,这是因为,修改性能和检索性能是互相矛盾的。当增加索引时,会提高检索性能,但是会降低修改性能,当减少索引时,会提高修改性能,降低检索性能。因此,当修改性能远远大于检索性能时,不应该创建索性。
5.1、创建索引的方法


普通索引的创建:都是创建的方法,任选其一就可以


创建一个唯一索引的两种方法。

创建复合索引的两种方法
5.2、删除索引

这里删除了表中名为index_sex的普通索引

两种不同的方式都可以删除索引,任选其一
5.3、查看索引

show index可以查看索引的详细信息

浙公网安备 33010602011771号