克里斯托夫·伯格:可重现构建:一个PostgreSQL查询优化示例

克里斯托夫·伯格:可重现构建:一个PostgreSQL查询优化示例

💡 原文英文,约900词,阅读约需4分钟。
📝

内容提要

本文展示了如何优化可重现构建项目中的慢查询,通过优化后,查询运行时间从45分钟缩短到100毫秒,速度提升了27,000倍。

🎯

关键要点

  • 本文展示了如何优化可重现构建项目中的慢查询,查询运行时间从45分钟缩短到100毫秒,速度提升了27,000倍。
  • 可重现构建项目旨在使软件编译完全确定性,减少软件供应链攻击的可能性,并提高软件质量保证。
  • 为了检查软件包是否可重现,重建者会在不同环境下运行构建,并比较结果,使用PostgreSQL数据库存储相关信息。
  • 一个特别慢的查询需要约45分钟来确定下一个测试的软件包,查询使用了NOT IN子查询,导致性能问题。
  • 优化建议是将NOT IN子查询重写为NOT EXISTS子查询,从而显著提高查询性能。
  • 优化后的查询执行时间为100毫秒,相比原来的45分钟,速度提升了27,000倍。
➡️

继续阅读