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

2024 年 4 月 12 日 作为一名查询优化研究人员,我一生中的最后 10 年都在研究、学习和构建最复杂的开源查询优化器, PostgreSQL。 我最近想知道自从我开始研究数据库以来的十年里 PostgreSQL 进步了多少。 虽然变更日志和意见文章很多,但我找不到任何强有力的实证比较,因此我决定运行 加入订单基准 (工作) 在 PostgreSQL 8 到 16 上。我记录了每个数据库版本的 90% 查询延迟。 我构建了每个版本 在带有 Arch Linux 的 Docker 容器中使用 GCC 13.2 的 PostgreSQL。 因为我想测量查询优化器的质量,而不是索引/IO 性能,所以我设置 shared_buffers 到 8GB(足够容纳整个数据库)。 我也设置了 work_mem 所有版本均为 8MB。 每个查询执行一次以预热缓存,然后记录 5 次额外运行的中值延迟。 全面的, PostgreSQL 的尾部性能大幅提升,尽管版本 13 到 16 大部分都是稳定的。 比较版本 […]

您不需要专用的缓存服务 – PostgreSQL 作为缓存 | 马丁·海因茨

PostgreSQL became a go-to SQL database for many developers over the past couple of years. While being an SQL database, Postgres also includes a lot of features that make it suitable for other uses, e.g. using it as NoSQL database (JSON and HStore datatypes) or vector database. Another – more unusual and possibly unexpected use-case […]

我们如何在 11 秒停机时间内迁移 PostgreSQL 数据库

英国政府通知 托管在 GOV.UK 平台即服务 (平台即服务)。 PaaS 即将退役,因此我们正在将所有基础设施迁移到我们自己的 Amazon Web Services (AWS) 帐户中。 这篇博文解释了我们如何迁移我们的 PostgreSQL 数据库停机时间最短。 迁移我们的数据库 PaaS 为我们提供了一个数据库,我们用它来存储我们的所有数据 – 从我们发送的每个通知的数据到服务团队用于发送这些通知的数十万个模板的内容。 这是一 AWS RDS PostgreSQL 数据库位于 PaaS 的 AWS 帐户中。 我们在 PaaS 中运行的应用程序与该数据库进行通信。 我们将该数据库称为“源数据库”。 我们需要在自己的 AWS 账户中设置一个新数据库,并让所有应用程序与新数据库进行通信。 我们将这个新数据库称为“目标数据库”。 在我们自己的 AWS 账户中创建新的 PostgreSQL 数据库并不太困难。 困难的部分是传输我们的所有数据并让我们的应用程序使用这个新数据库,同时将停机时间降至最低。 关于我们的源数据库的更多信息 我们的源数据库大小约为 400GB。 它拥有约 13 亿行、85 个表、185 个索引和 120 个外键。 这是 PostgreSQL […]