0


MySQL--优化(索引--索引创建原则)

MySQL–优化(索引–索引创建原则)

  1. 定位慢查询
  2. SQL执行计划
  3. 索引 - 存储引擎- 索引底层数据结构- 聚簇和非聚簇索引- 索引创建原则- 索引失效场景
  4. SQL优化经验

一、索引创建原则

我们使用的索引种类:

  • 主键索引
  • 唯一索引
  • 根据业务创建的索引(复合索引)

二、索引创建原则有哪些?

想象一个图书馆,里面的书籍没有按照任何顺序排列。如果你想找一本书,你可能需要一本一本地查看,这会非常耗时。这就是没有索引的数据库的感觉。

现在,想象图书馆员决定按照书的标题或作者来排序书籍。突然之间,找书变得容易多了。这就是索引的力量。

在这里插入图片描述

1、针对于数据量较大,且查询比较频繁的表建立索引

  • 一般情况下单表超过10万数据(就去可以添加索引)
  • 比喻:在一个繁忙的火车站,如果没有指示牌或电子显示屏告诉乘客哪趟列车在哪个站台,乘客就会四处寻找,造成混乱。索引就像这些指示牌,帮助数据库快速定位到需要的数据。在这里插入图片描述

2、针对于常作为查询条件(where)、排序 (order by) 、分组(group by)操作的字段建立索引。

  • 例子:如果你经常按照员工的入职日期来查询或排序数据,那么在这个字段上建立索引会很有用。

3、尽量选择区分度高的列作为索引,尽量建立唯一索引,区分度越高,使用索引的效率越高。

  • 比喻:想象一个只有男性和女性两种选择的性别字段。虽然你可以在这个字段上建立索引,但由于区分度太低(只有两种可能),索引的效果可能并不明显。相比之下,身份证号或邮箱地址这样的字段区分度就很高,更适合建立索引。

4、字符串类型的字段,可以建立前缀索引

  • 例子:对于像URL这样很长的字符串字段,你可能不需要对整个字段建立索引。只对URL的前几个字符建立索引(即前缀索引)可能就足够了。

5、尽量使用联合索引,减少单列索引,查询时,联合索引很多时候可以覆盖索引,节省存储空间,避免回表,提高查询效率。

在这里插入图片描述

6、控制索引的数量

  • 索引就像厨房里的调料。适量的调料可以让食物更美味,但过多的调料会掩盖食物本身的味道。同样,过多的索引会降低数据库的性能。

7、如果索引列不能存储NULL值,请使用NOT NULL约束

  • 例子:假设你有一个记录员工电话号码的字段,并且这个字段上建立了索引。如果允许NULL值,那么当查询电话号码为NULL的员工时,索引可能无法有效工作。通过使用NOT NULL约束,你可以确保索引始终有效。
标签: mysql 数据库

本文转载自: https://blog.csdn.net/zhouxiaozheng213/article/details/136544726
版权归原作者 绕指柔给你刀 所有, 如有侵权,请联系我们删除。

“MySQL--优化(索引--索引创建原则)”的评论:

还没有评论