所谓“水能载舟,亦能覆舟”,数据库的索引也是一样,盲目的建立索引不仅达不到预期的效果,反而会酿成更大的灾难。能否更好的使用索引,是考验一个DBA是否优秀的重要指标之一。
![66dee6fd2d2d4a813065de4a1c56914b.png](https://i-blog.csdnimg.cn/blog_migrate/c76de2ad6406be57e3395c2dbb4c97b1.jpeg)
mysql
使用索引的优点:
1、大大提高数据的检索速度,也是使用索引的主要原因。
2、可以加快表与表之间的连接。
3、保证数据的参照完整性。例如:外键列上创建索引可以有效避免死锁问题,也可以防止更新父表主键时,对子表的表锁。
4、减少磁盘I/O操作的手段之一。
5、唯一性索引可以保证表中每行数据的唯一性。
6、查询中使用优化隐藏器,提高系统性能。
7、减少查询中分组(GROUP BY)和排序(ORDER BY)的时间,提高查询速度。
使用索引的缺点:
1、创建和维护索引需要耗费时间,而且会随着数据量的增加而增加。
2、索引需要占用物理空间,如果建立聚簇索引,需要的空间更大。
那么平时应该怎么选择是否建立索引呢?下面总结出一些基本原则:
1、对数据量大的表建立索引才有意义,通常少于1000条数据没必要建立索引。
2、在WHERE字句或者连接条件经常使用的列上建立索引。
3、索引的层次不要超过4层。
4、做为最大值和最小值函数的参数列,考虑建立索引。
5、索引应该建立在选择性高的字段上,也就是索引选择性。(之前讲过,可翻阅往期文章)
6、复合索引的建立需要正确选择前导列字段。
7、主键、外键列必须建立索引。
8、索引建立在小字段上,对于字段数据类型TEXT等不适合建立索引。
9、经常与其他表进行连接的表,连接字段考虑建立索引。
以上就是本期的总结,希望对你有用~~
下期见~~