亨丽埃塔·多布罗夫斯卡娅:我们可以使用这个索引吗?——为什么不?

亨丽埃塔·多布罗夫斯卡娅:我们可以使用这个索引吗?——为什么不?

💡 原文英文,约600词,阅读约需3分钟。
📝

内容提要

在圣诞节期间,一位用户询问查询性能不一致的问题。分析发现,尽管有索引,但在处理数亿行数据时,由于需要验证小时和分钟,查询速度缓慢。尝试优化索引未果,最终通过重写查询,利用索引块过滤,显著提升了性能。

🎯

关键要点

  • 用户询问查询性能不一致的问题,查询时间有时长达30分钟。
  • 在处理数亿行数据时,查询速度缓慢,尽管有索引。
  • 原始查询涉及自连接视图,最终简化为从一个表的SELECT查询。
  • 查询的慢速是由于高I/O和执行时共享缓冲区的内容。
  • 查询计划显示索引扫描,但每条记录都需要验证小时和分钟。
  • 尝试创建部分索引或将小时和分钟包含在索引中未成功。
  • 通过运行计数查询发现其在毫秒内完成,使用了INDEX ONLY SCAN。
  • 重写查询以优化性能,成功利用索引块过滤。
➡️

继续阅读