1、索引的优点:

  • (1)提高数据检索效率。
  • (2)提高聚合函数效率。
  • (3)提高排序效率。
  • (4)使用覆盖索引可以避免回表。

2、索引创建的四不要:

  • (1)选择性低的字段不要创建索引(例如,性别 scx、状态 status)。

  • (2)很少查询的列不要创建索引(项目初期就要确定好)。

  • (3)大数据类型字段不要创建索引。

  • (4)尽量避免不要使用 NULL,应该指定列为 NOT NULL(在 MySQL 中,含有空值的列很难进行查询优化,它们会使得索引、索引的统计信息及比较运算更加复杂。可以使用空字符串代替空值)。

3、使用不到索引的情况:

  • (1)通过索引扫描的行记录数超过全表的 30%,优化器就不会走索引,而变成全表扫描。

  • (2)联合索引中,第一个查询条件不是最左索引列(应该是最左索引列不在查询条件中)。

  • (3)联合索引中,第一个索引列使用范围查询,只能使用到部分索引,有ICP 出现(范围查询是指 <、=、<=、BETWEEN and)。

  • (4)联合索引中,第一个查询条件不是最左前缀列(其实就是最左索引列不在查询条件中,只要最左索引列在查询条件中,mysql优化器会自动优化最高效率的查询顺序)。

  • (5)模查询条件列最左以通配符 %开始(以考放到子里面)。

  • (6)两个单列索引,一个用于检索,一个用于排序。这种情况下只能使用到一个索引。因为查询语句中最多只能使用一个索引,考虑建立联合索引。

  • (8)查询字段上面有索引,但是使用了函数运算。

作者:admin  创建时间:2023-01-31 11:56
最后编辑:admin  更新时间:2023-02-02 15:36