添加索引对 DISTINCT 排序的影响:数据如何排序?

添加索引对 distinct 排序的影响:数据如何排序?

索引对 DISTINCT 排序的影响

在不含 ORDER BY 子句的情况下,SQL 标准未规定排序顺序。因此,实际排序行为由数据库系统和底层存储引擎决定。

MySQL 中常用的 InnoDB 存储引擎为例:

  • InnoDB 采用 B+ 树结构,数据从左至右顺序存储。
  • 在没有匹配的二级索引时,InnoDB 使用主键索引进行查询,结果按照主键顺序排序。
  • 当使用二级索引时,InnoDB 将按照用到的索引顺序进行排序。

因此,为 Province 字段添加索引会导致以下排序变更:

  • 无索引时,结果按照主键生序排序。
  • 添加索引后,结果按照 Province 索引中的顺序排序。

以上就是添加索引对 DISTINCT 排序的影响:数据如何排序?的详细内容,更多请关注其它相关文章!