PolarDB MySQL计算下推(一) - 谓词完全下推

PolarDB MySQL计算下推(一) - 谓词完全下推
最新回答
纯真ブ

2020-10-13 20:04:44

PolarDB MySQL计算下推系列导航,旨在提升性能与优化查询效率。本篇将重点讲解谓词完全下推的概念与实施。

社区MySQL在5.1版本引入插件式引擎体系结构,该结构使得MySQL引擎便于扩展,用户可根据需求选择合适的存储引擎。然而,MySQL SQL层与引擎层的紧密融合导致优化策略相对现代数据库较少,特别是在处理大量数据时,性能瓶颈显著。

为了加速查询并充分融合SQL层与引擎层的特性,PolarDB MySQL进行了一系列计算下推优化。本文将聚焦于谓词完全下推技术,旨在消除冗余计算,提升性能。

社区MySQL在处理索引扫描时,会生成Query Range限定引擎的扫描范围。然而,抽取扫描范围的条件保留在SQL层,导致SQL层与引擎层分别执行同一条条件,造成不必要的重复计算。在处理大量数据的情况下,这一过程成为性能瓶颈。

PolarDB MySQL通过将体现在索引扫描范围内的谓词条件消除,实现谓词完全下推,有效避免条件重复计算,显著提升查询性能。

通过对比社区MySQL与PolarDB MySQL的查询执行计划,我们可以直观地看到谓词完全下推带来的改变。在社区MySQL中,谓词条件保留在SQL层与表访问范围中;而在PolarDB MySQL中,谓词条件从SQL层移除,直接在引擎层处理,显著减少了计算开销。

为了验证谓词完全下推技术的效果,我们基于TPCH 10 scale数据集进行了分析。对比结果显示,谓词移除后,SQL层可以节省条件计算开销,性能显著提升。