PostgreSQL 优化器十年的改进 • Ryan Marcus

主要观点:作为查询优化研究员,Ryan Marcus 用 10 年时间研究 PostgreSQL 开源查询优化器,通过运行 join order benchmark 发现 PostgreSQL 尾部性能在过去 10 年大幅提升,从版本 8 到 16 尾延迟降低近一半,平均每个新版本带来 15%性能提升,但并非全归因于查询优化器,执行引擎改进也有作用,建议升级数据库,研究人员应注意 PostgreSQL 是动态变化的目标。
关键信息:

  • Ryan Marcus 是宾夕法尼亚大学助理教授,用机器学习构建下一代数据系统。
  • 运行 join order benchmark 测试 PostgreSQL 不同版本性能,记录 90 百分位查询延迟。
  • 在 Docker 容器中用 GCC 13.2 和 Arch Linux 构建各版本 PostgreSQL,设置共享缓冲区和工作内存。
  • 整体 PostgreSQL 尾性能大幅提升,版本 13 到 16 较稳定,各版本平均带来 15%性能提升。
  • 可查看原始数据。
    重要细节:
  • join order benchmark 是含多连接的复杂查询集,在相关论文中被提出以展示其难度。
  • 每个版本使用其最近的小版本,如 PostgreSQL 8 用 8.4.22,主要是修复 bug 而非新增功能或性能提升。
阅读 8
0 条评论