Crunchydata
Crunchy Data,领先的企业级 PostgreSQL 解决方案提供商,提供可在任意基础设施上部署的可信、安全、商业支持的 PostgreSQL 服务。
BC省时区变更与Postgres时间戳陷阱:为何你的预约时间可能错了一小时?
文章以不列颠哥伦比亚省永久实行夏令时为例,深入分析了PostgreSQL中timestamptz字段在tzdata更新后导致的时间偏移问题。作者指出,由于timestamptz存储的是UTC时间,时区规则变更会导致历史存入的未来本地时间查询结果出错。文中提供了检测tzdata版本的方法,并推荐了存储本地时间与时区的双列模式(Dual Column Pattern)作为解决方案,同时讨论了RFC 9557标准的局限性及数据迁移策略。 

PostgreSQL EXPLAIN执行计划中的扫描类型全解
详解PostgreSQL EXPLAIN计划中的各类扫描类型,包括顺序扫描、索引扫描、位图索引扫描、并行扫描及索引-only扫描的原理、适用场景与性能差异,附带具体SQL示例和计划输出分析。 

PostgreSQL整数溢出:主键序列耗尽的检测与修复方案
针对PostgreSQL中整数主键序列耗尽问题,提供了检测序列使用率的SQL查询,并对比了切换为负数序列(短期方案)和迁移至bigint(长期方案)的具体操作步骤、优缺点及注意事项。 

Postgres的主键序列应该升级为Bigint
文章指出Postgres中传统的SERIAL(INT)存在溢出风险,建议改用BIGINT。作者通过详细分析证明在64位系统上INT和BIGINT存储成本几乎相同。重点提供了将生产环境数据从INT迁移到BIGINT的完整技术方案,包括异步回填、批量清理、并发建索引以及最终的原子交换步骤,确保业务低停机。
Postgres 18 数据校验和默认开启及升级应对指南
Postgres 18 将数据校验和设为默认开启,以防御静默数据损坏。文章解释了校验和工作原理,并重点指出这可能导致使用 pg_upgrade 进行大版本升级时因新旧集群设置不一致而失败,提供了临时绕过方案及长期迁移建议。 

隐藏在明处的PostgreSQL内部机制
文章介绍了PostgreSQL内部目录表(Catalog)和视图(Views)的用途,列举了psql常用命令以及pg_stat_activity、pg_locks等关键视图和底层表的查询方法,旨在帮助开发者更好地监控和调试数据库。 

时间关联查询(PostgreSQL实战指南)
文章通过回顾2008年处理数据库查询时的痛点,对比了传统嵌套子查询、PostgreSQL特有的DISTINCT ON语法以及现代CTE与窗口函数的解决方案。重点讨论了在处理“获取最新关联记录”这一常见场景时,如何避免重复数据Bug及ORM导致的N+1查询性能问题,提供了具体的SQL代码示例和最佳实践。 

PostgreSQL是读多写少还是写多读少?
文章探讨了如何判断PostgreSQL数据库是读密集还是写密集型,提供了基于内部统计信息的SQL查询方法来估算读写比例,并分别针对高写入和高读取负载给出了具体的性能调优建议,如使用NVMe SSD、调整WAL、利用只读副本等。 

PostgreSQL 18: 在 RETURNING 子句中访问旧行和新行
介绍 PostgreSQL 18 的新特性,允许在 INSERT、UPDATE、DELETE 和 MERGE 命令的 RETURNING 子句中直接访问 OLD 和 NEW 行数据。文章对比了此前依赖 xmax 实现细节的晦涩写法,展示了新版本中通过检查 OLD 是否为空来优雅区分 Upsert 中新插入和已更新行的方法,具有明确的工程实用价值。 

Postgres的原始项目目标:创建者们完全做到了
文章回顾1986年Postgres原始论文中的六大设计目标,并逐一对照现代Postgres特性(如JSONB、PostGIS、pgvector、WAL、并行查询等)进行解析,展示其前瞻性与生态扩展能力。
PostgreSQL 18 即将发布:异步I/O、UUID v7与OAuth 2.0等核心特性前瞻
CrunchyData详解PostgreSQL 18即将发布的重大特性,包括异步I/O提升性能、UUID v7优化索引局部性、B-tree跳过扫描、虚拟生成列以及原生OAuth 2.0支持。文章提供了技术原理、代码示例及性能影响分析,对数据库开发者和运维人员具有高参考价值。 

PostgreSQL中JSONB数据的索引策略与最佳实践
本文详细介绍了PostgreSQL中JSONB数据的索引策略。重点讲解了GIN索引适用于包含查询和键存在性检查,但也指出了其在路径导航和比较查询中的局限性及维护开销。此外,还介绍了表达式索引用于优化特定字段的范围扫描,并给出了结合使用GIN与B-Tree的最佳实践建议。 

Postgres新手数据加载完全指南
面向Postgres新手的多种数据导入方法指南,涵盖CSV、JSON、GUI工具、Dump/Restore、FDW、生成测试数据及pgbench性能测试,附带代码示例和工具对比。 

PostgreSQL日志配置与性能优化实战指南
本文详细介绍了PostgreSQL日志配置的基础知识与进阶技巧,涵盖日志收集器、格式选择、SQL语句记录、敏感数据脱敏及审计日志。重点讲解了如何利用日志进行性能监控,包括慢查询、锁等待和临时文件生成的检测,旨在帮助DBA和开发者通过日志优化数据库性能。 

如何创建PostgreSQL只读用户及权限管理指南
文章通过具体示例演示了如何在PostgreSQL中创建只读用户,详细讲解了GRANT、REVOKE及ALTER DEFAULT PRIVILEGES的使用方法和陷阱,并重点介绍了PostgreSQL 14中新增的pg_read_all_data角色如何简化这一流程。
将 Postgres 分区数据归档至 Iceberg
本文介绍如何利用 Crunchy Data Warehouse 的逻辑复制功能,将 Postgres 中按时间分区的旧数据无缝归档到 Iceberg 数据湖中。通过保留近期数据在 Postgres 进行在线事务处理,同时将历史数据复制到 Iceberg 进行长期存储和查询,实现了性能优化与成本控制的平衡。文章提供了从建表、配置复制用户到最终删除旧分区并验证 Iceberg 数据完整性的完整代码示例。 

Snowflake 收购 Crunchy Data:Postgres 正式融入 AI 数据云
Snowflake 宣布收购 Crunchy Data,旨在将 Postgres 引入其 AI 数据云。文章回顾了 Crunchy Data 自 2012 年成立以来推动 Postgres 在容器化和云原生领域的发展,以及 Crunchy Bridge 产品的历程。此次收购标志着 Snowflake 进军 OLTP 市场,利用 Crunchy Data 的技术增强其在企业级 Postgres 支持上的能力,实现操作型数据库与分析型数据云的融合。
黑客帝国式优化:利用Postgres统计表实现查询加速
文章深入解析了PostgreSQL查询优化器如何利用统计信息,并详细演示了如何通过创建扩展统计信息(Extended Statistics)来解决列间相关性导致的估算偏差问题。通过依赖关系、多变量唯一值和多变量最常见值三种策略,结合真实的EXPLAIN ANALYZE对比数据,展示了如何显著提升复杂查询的执行效率,从秒级降低到毫秒级。 

PostgreSQL 到 Iceberg 的原生逻辑复制
Crunchy Data 宣布在 Crunchy Data Warehouse 中实现从 PostgreSQL 到 Iceberg 的原生逻辑复制。该功能支持插入、更新、删除和截断操作,具有低延迟、保留事务边界和自动表创建等特性,旨在简化操作数据库与分析型数据仓库之间的数据同步。 

Pg_parquet v0.4.0 发布:支持 Google Cloud Storage 和 HTTPS 存储
CrunchyData 发布 pg_parquet v0.4.0,新增对 Google Cloud Storage 和 HTTPS 存储的支持,以及 UUID、JSON 等类型支持。该工具允许在 PostgreSQL 内部直接通过 COPY 命令导入导出 Parquet 文件,无需第三方工具,旨在简化 Postgres 与数据湖之间的数据迁移和集成。 
