再探讨 MySQL 数据回表的最佳实践?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2583个文字,预计阅读时间需要11分钟。
一:概述+关于概述的概念网上关于概述的资料已经很多,这里不再过多赘述。下面我们直接放一张图,可能更直观地说明什么是概述。图中:非聚集索引也叫二级索引,其本质也是+一个
一:回表概述关于回表的概念网上已经有很多了,这里不过多赘述。下面我们直接放一张图可能更直观说明什么是回表。
图中 非聚集索引也叫二级索引,二级索引本质上也是 一 个 B+ 树结构,与聚集索引(也叫主键索引)不同的是,非聚集索引并不包含表上的完整数据,当在e二级索引上查询时,实际上数据规模变小了很多,此时二级索引上的 IO 成本更低一些,速度更快。实际业务中,经常发现我们的 SQL 从 二级索引上过滤了数据,但发现还是很慢,其中回表是比较常见的一个原因。假如你的 SQL 想要的数据,不能完全从 二级索引上得到时,此时就需要回表从聚集索引上过滤扫描,这个过程需要一些性能开销,时间复杂度大概在 O(1) – O(n) 之间。
本文共计2583个文字,预计阅读时间需要11分钟。
一:概述+关于概述的概念网上关于概述的资料已经很多,这里不再过多赘述。下面我们直接放一张图,可能更直观地说明什么是概述。图中:非聚集索引也叫二级索引,其本质也是+一个
一:回表概述关于回表的概念网上已经有很多了,这里不过多赘述。下面我们直接放一张图可能更直观说明什么是回表。
图中 非聚集索引也叫二级索引,二级索引本质上也是 一 个 B+ 树结构,与聚集索引(也叫主键索引)不同的是,非聚集索引并不包含表上的完整数据,当在e二级索引上查询时,实际上数据规模变小了很多,此时二级索引上的 IO 成本更低一些,速度更快。实际业务中,经常发现我们的 SQL 从 二级索引上过滤了数据,但发现还是很慢,其中回表是比较常见的一个原因。假如你的 SQL 想要的数据,不能完全从 二级索引上得到时,此时就需要回表从聚集索引上过滤扫描,这个过程需要一些性能开销,时间复杂度大概在 O(1) – O(n) 之间。

