Schema_ferry 是一个支持持续 Schema 迁移的工具,解决了现有迁移工具(如 pgloader)只能一次性迁移的问题。当 MySQL Schema 因持续开发发生变更时,开发者无需手动同步或编写自定义脚本。该工具通过三个步骤工作:使用 Rails ActiveRecord 解析 MySQL Schema,结合预定义规则和用户自定义 DSL 生成 PostgreSQL Schema 文件,再利用日本的常用 Rails Schema 管理工具 ridgepole 自动生成并执行必要的 DDL,保持两端 Schema 同步。
#postgresql
30 条相关内容
Multigres 现在支持在连接池化场景下使用 PostgreSQL 的 Listen/Notify 机制,使不同连接之间能够可靠地接收和传递通知消息。这一功能解决了池化环境下长连接监听与通知的常见难题,提升了应用的实时通信能力。
本文是 PostgreSQL B-Tree 索引系列的第一部分,系统介绍了 B-Tree 索引的核心理论。文章从索引的基本概念入手,详细讲解了 B-Tree 的数据结构、工作原理以及如何在 PostgreSQL 中高效利用 B-Tree 索引来加速查询。内容涵盖平衡树的结构特性、索引的创建与管理、以及常见的查询优化策略,为读者打下坚实的理论基础。
PgBouncer 是一个轻量级的 PostgreSQL 连接池工具,它通过在应用程序和数据库之间维护一组持久连接来减少频繁创建和销毁连接的开销。本文深入介绍了 PgBouncer 的三种连接池模式(会话、事务和语句模式),以及其内部工作原理、配置要点和最佳实践,帮助读者优化数据库连接管理并提升系统性能。
本文解释了 PostgreSQL 遇到 OOM Killer(内存不足杀手)的根本原因,并论证了为什么必须启用严格内存超额分配(strict memory overcommit)来防止数据库进程被意外终止。文章深入分析了内存管理的运作机制,并为生产环境中的 PostgreSQL 部署提供了关键配置建议。
pgvector 项目的一项新合并的 PR 通过使用新的压缩方法,将向量索引大小缩小了 10 倍。该改进显著减少了存储占用,同时保持查询性能,使 PostgreSQL 能够更高效地处理大规模向量数据。
这篇文章介绍了如何在PostgreSQL数据库中运行Commodore 64的BASIC语言。通过一个名为plcbmbasic81的扩展,用户可以在PostgreSQL中编写和执行C64风格的BASIC程序。这为复古计算爱好者提供了一种在现代化数据库系统中体验经典编程语言的有趣方式。
本文探讨了如何突破 PgBouncer 在单个 CPU 核心上的性能瓶颈,实现规模化扩展。针对 ClickHouse 管理的 PostgreSQL 场景,文中介绍了通过多实例部署、负载均衡及配置优化等策略,有效提升连接池吞吐量与系统整体性能的实践方法。
pgvector 项目的最新 PR(#989)引入了 TurboQuant 技术,能够在处理 1 亿行规模的数据时,将向量索引的大小减少多达 10 倍。这一优化显著降低了存储成本和内存占用,同时保持高查询性能,使得大规模向量搜索更加高效和可扩展。
在大规模数据场景下,Postgres 数据库仅使用 ORDER BY 进行排序会面临性能瓶颈。本文深入探讨了如何通过索引优化、内存配置调整以及查询计划分析等手段,提升 Postgres 在海量数据集上的排序效率,帮助开发者避免常见的性能陷阱。
本文介绍了 ClickHouse 如何在其托管的 PostgreSQL 服务中扩展 PgBouncer,以应对大规模连接管理和连接池化挑战。通过优化配置和架构调整,团队成功提升了系统的并发处理能力和稳定性,确保了生产环境下的高性能数据库连接管理。
Pl/PHP 是一种用于 PostgreSQL 数据库的过程语言,允许开发者使用 PHP 编写存储过程和函数。该项目位于 GitHub 上,由 Command Prompt 维护,为 PostgreSQL 提供了 PHP 语言支持,使得数据库开发人员能够利用熟悉的 PHP 语法和特性来创建数据库端的业务逻辑。
Pglayers 是一个开源工具,可将 PostgreSQL 扩展打包成可堆叠的 Docker 镜像层。通过这种分层设计,用户能够灵活组合所需的数据库扩展,而无需从头构建或管理复杂的依赖关系。该项目旨在简化 PostgreSQL 扩展的部署和管理流程。
本文探讨如何通过 SO_REUSEPORT 和 peering 机制,让 PgBouncer 连接池能够充分利用多核 CPU 的并行处理能力,突破传统单线程模型的性能瓶颈,从而在 ClickHouse 托管的 PostgreSQL 服务中实现更高的连接吞吐量和更低的延迟。
Snowflake 工程团队对即将发布的 PostgreSQL 19 进行了前瞻分析,重点介绍了新版本中值得关注的特性和改进。本文探讨了 Postgres 19 的 Beta 版本中引入的关键变化,帮助开发者和数据库管理员提前了解未来升级可能带来的性能优化和功能增强。
太多表对你有害
1.5在数据库设计中,创建过多的表会显著影响性能和维护性。本文探讨了过度表分化(table proliferation)带来的问题,包括查询性能下降、连接操作变慢、内存管理效率降低以及开发复杂性增加。作者通过实际案例和性能基准测试,展示了表数量过多如何导致计划优化器负担加重、缓存命中率下降以及维护工作成倍增长,并提出了合理的表设计建议来避免这些陷阱。
这篇文章阐述了为什么 PostgreSQL 可以成为大多数 Web 应用所需的唯一数据库。作者认为,通过充分利用 PostgreSQL 的高级特性(如 JSONB 支持、全文搜索、窗口函数、分区表以及扩展生态),开发者可以在不需要额外引入 Redis、Elasticsearch 等专用系统的情况下构建完整的应用后端,从而简化技术栈、降低运维复杂度。
PostgreSQL Management Platform 是一个专为 PostgreSQL 数据库设计的综合管理平台,提供数据库监控、性能优化、备份恢复、查询分析等功能,帮助用户高效管理和维护 PostgreSQL 数据库实例。
微软发布DocumentDB,这是一个基于PostgreSQL构建的新式NoSQL数据库服务。它旨在将文档数据库的灵活性与PostgreSQL的可靠性和生态系统相结合,为开发者提供更高效的数据管理方案。该服务支持MongoDB API兼容性,允许现有应用轻松迁移,同时利用PostgreSQL的强大功能来处理复杂查询和事务。
本文深入对比了 PostgreSQL 的 Jsonb 与 MongoDB 的 BSON 两种文档存储方案在架构层面的真实权衡。文章分析了二者在数据建模、查询能力、索引机制、事务支持及扩展性等方面的差异,帮助开发者在关系型数据库与文档数据库之间做出更明智的技术选型决策。
本文深入探讨了 PostgreSQL 内部架构中的核心概念:数据库集群、数据库与表。从文件系统层面剖析 PostgreSQL 如何组织数据,包括数据目录结构、表空间、系统目录表以及堆表(heap table)的物理存储格式。适合希望理解 PostgreSQL 底层工作原理的开发者和 DBA。
本文探讨了PostgreSQL兼容数据库在大规模AI应用中的优势与挑战。随着AI工作负载对数据管理和扩展性要求的提升,PostgreSQL兼容数据库因其成熟的关系型数据库基础、丰富的扩展生态以及对分布式架构的支持,成为许多组织构建AI基础设施的首选。文章分析了在规模化场景下,如何利用PostgreSQL兼容性实现高效的数据存储与查询,同时平衡性能、一致性和可扩展性需求。
该拉取请求为PGVector(PostgreSQL的向量相似度搜索扩展)引入了TurboQuant量化方法支持。TurboQuant是一种高效的向量量化技术,能够在保持较高搜索精度的同时显著降低存储和计算开销,从而提升大规模向量检索的性能。
本文讲述了 PostgreSQL 从大学研究项目成长为全球最受欢迎的开源数据库之一的传奇历程。尽管其创始团队曾一度放弃该项目,但凭借开源社区的持续贡献和坚韧不拔的精神,Postgres 不仅没有被淘汰,反而在数据库领域占据了重要地位。文章回顾了这一路上关键的转折点、技术革新以及社区治理模式如何帮助它克服重重困难。
本文探讨了如何将 PostgreSQL 和 ClickHouse 结合起来构建开源统一数据栈。PostgreSQL 擅长处理在线事务处理(OLTP)及强一致性需求,而 ClickHouse 则在在线分析处理(OLAP)及大规模实时查询方面表现卓越。通过将两者结合,用户可以在统一架构中兼顾事务与分析场景,充分发挥各自优势。
WAL-RUS 是一个用 Rust 语言重新实现的 PostgreSQL 备份工具,旨在替代原有的 WAL-G 项目。该项目利用 Rust 的内存安全特性和高性能优势,为 PostgreSQL 的 WAL(预写日志)备份提供更可靠、更高效的解决方案,同时保持与 WAL-G 兼容的工作流程和功能集。
本文详细介绍了如何实现 PostgreSQL 从本地数据中心到 AWS 云端(如 Aurora 或 RDS)的零停机迁移方案,涵盖逻辑复制、AWS DMS 等关键技术路径,帮助企业在不中断业务的情况下安全完成数据库上云迁移。
在 PostgreSQL 中,无法直接在表的中间位置添加新列,这是因为 PostgreSQL 的存储引擎基于堆存储模型,列的顺序由表定义中的属性编号决定。任何试图在中间插入列的操作都需要重建整个表,这对大型生产数据库来说代价极高。文章深入分析了 PostgreSQL 的存储架构、元组布局以及为何无法像 MySQL 那样支持 AFTER 子句添加列,并给出了几种实用的替代方案,如重建表、使用视图或调整列排序策略。
PgBouncer 是一个轻量级的 PostgreSQL 连接池工具,通过在应用和数据库之间维护一组持久连接来减少连接建立的开销。它支持多种池化模式(会话、事务和语句模式),并能高效管理数千个客户端连接。本文深入解析了 PgBouncer 的内部工作机制、配置选项以及最佳实践。
本文深入探讨了 PostgreSQL 在现代化应用开发中的强大能力,展示了如何仅用这一款数据库就能替代多种专门服务,包括消息队列、缓存、全文搜索、事件存储等。作者通过实际案例和详细分析,说明了 PostgreSQL 的扩展性和丰富功能如何简化技术栈、降低运维复杂度,同时保持良好的性能表现。