XPlan Index Selection in PolarDB-X

💡 原文约300字/词,阅读约需1分钟。
📝

内容提要

本文介绍了PolarDB-X数据库的索引选择算法XPlan,通过将执行计划直接传输给数据节点执行,避免了索引选择的不准确性。文章详细介绍了XPlan的设计原理和流程,并提到了XPlan索引选择的优化和倾斜值问题的处理。通过优化XPlan索引选择,PolarDB-X显著降低了索引错选的概率。

🎯

关键要点

  • PolarDB-X数据库的索引选择算法XPlan通过直接传输执行计划给数据节点,避免了索引选择的不准确性。
  • 正确选择索引对数据库性能至关重要,错误选择可能导致查询缓慢或数据库不可用。
  • XPlan机制主要用于点查场景,支持单张表的DQL,优化了索引选择过程。
  • XPlan的设计考虑了基数估计错误和执行计划缓存下的倾斜索引问题。
  • PolarDB-X的优化器通过RBO和CBO生成最优执行计划,并根据查询类型选择合适的索引。
  • XPlan索引选择在单机优化器的最后阶段进行,与CBO中的局部索引选择不同。
  • 执行计划缓存机制通过PlanCache和PlanManager管理执行计划,优化器采用Optimize Once的策略。
  • XPlan索引选择流程包括检查统计信息、过滤倾斜索引和选择最佳索引。
  • 倾斜值判断通过采样数据分析索引前缀列的组合,确保选择的索引没有倾斜问题。
  • 回退机制确保在XPlan选择错误时,能够关闭当前SQL模版的XPlan并发出报警。
  • 优化后的XPlan索引选择逻辑显著降低了选错索引的概率,从5%降至0.1%。
  • XPlan的普适性和倾斜值判断的稳定性仍需进一步优化。
➡️

继续阅读