Crunchydata

Crunchy Data,领先的企业级 PostgreSQL 解决方案提供商,提供可在任意基础设施上部署的可信、安全、商业支持的 PostgreSQL 服务。

Postgres 19:我们的建议这些年有哪些变化

CrunchyData回顾了过去几年关于Postgres数据加载、索引和分区建议的变化。Postgres 18引入异步I/O大幅提升顺序扫描和VACUUM速度,19版在此基础上增加I/O工作线程自动伸缩和并行自动VACUUM。 LZ4压缩成为TOAST默认算法,COPY命令新增ON_ERROR set_null/ignore、跳过多行表头、直接输出JSON等实用功能。BRIN索引新增minmax_multi和Bloom操作符类,B树新增skip scan支持。 分区操作新增MERGE和SPLIT命令,DETACH支持CONCURRENTLY。JIT默认关闭,大查询需手动重新开启。
评论点赞收藏43 天前

BC省时区变更与Postgres时间戳陷阱:为何你的预约时间可能错了一小时?

文章以不列颠哥伦比亚省永久实行夏令时为例,深入分析了PostgreSQL中timestamptz字段在tzdata更新后导致的时间偏移问题。作者指出,由于timestamptz存储的是UTC时间,时区规则变更会导致历史存入的未来本地时间查询结果出错。 文中提供了检测tzdata版本的方法,并推荐了存储本地时间与时区的双列模式(Dual Column Pattern)作为解决方案,同时讨论了RFC 9557标准的局限性及数据迁移策略。
评论点赞收藏106 天前

PostgreSQL EXPLAIN执行计划中的扫描类型全解

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

Postgres的主键序列应该升级为Bigint

文章指出Postgres中传统的SERIAL(INT)存在溢出风险,建议改用BIGINT。作者通过详细分析证明在64位系统上INT和BIGINT存储成本几乎相同。 重点提供了将生产环境数据从INT迁移到BIGINT的完整技术方案,包括异步回填、批量清理、并发建索引以及最终的原子交换步骤,确保业务低停机。
评论点赞收藏117 天前

Postgres 18 数据校验和默认开启及升级应对指南

Postgres 18 将数据校验和设为默认开启,以防御静默数据损坏。文章解释了校验和工作原理,并重点指出这可能导致使用 pg_upgrade 进行大版本升级时因新旧集群设置不一致而失败,提供了临时绕过方案及长期迁移建议。
评论点赞收藏293 天前

隐藏在明处的PostgreSQL内部机制

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

时间关联查询(PostgreSQL实战指南)

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

PostgreSQL是读多写少还是写多读少?

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

PostgreSQL 18: 在 RETURNING 子句中访问旧行和新行

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

PostgreSQL中JSONB数据的索引策略与最佳实践

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

Postgres新手数据加载完全指南

面向Postgres新手的多种数据导入方法指南,涵盖CSV、JSON、GUI工具、Dump/Restore、FDW、生成测试数据及pgbench性能测试,附带代码示例和工具对比。
评论点赞收藏392 天前

PostgreSQL日志配置与性能优化实战指南

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

如何创建PostgreSQL只读用户及权限管理指南

文章通过具体示例演示了如何在PostgreSQL中创建只读用户,详细讲解了GRANT、REVOKE及ALTER DEFAULT PRIVILEGES的使用方法和陷阱,并重点介绍了PostgreSQL 14中新增的pg_read_all_data角色如何简化这一流程。
评论点赞收藏406 天前

将 Postgres 分区数据归档至 Iceberg

本文介绍如何利用 Crunchy Data Warehouse 的逻辑复制功能,将 Postgres 中按时间分区的旧数据无缝归档到 Iceberg 数据湖中。通过保留近期数据在 Postgres 进行在线事务处理,同时将历史数据复制到 Iceberg 进行长期存储和查询,实现了性能优化与成本控制的平衡。 文章提供了从建表、配置复制用户到最终删除旧分区并验证 Iceberg 数据完整性的完整代码示例。
评论点赞收藏458 天前

Snowflake 收购 Crunchy Data:Postgres 正式融入 AI 数据云

Snowflake 宣布收购 Crunchy Data,旨在将 Postgres 引入其 AI 数据云。文章回顾了 Crunchy Data 自 2012 年成立以来推动 Postgres 在容器化和云原生领域的发展,以及 Crunchy Bridge 产品的历程。 此次收购标志着 Snowflake 进军 OLTP 市场,利用 Crunchy Data 的技术增强其在企业级 Postgres 支持上的能力,实现操作型数据库与分析型数据云的融合。
评论点赞收藏484 天前

黑客帝国式优化:利用Postgres统计表实现查询加速

文章深入解析了PostgreSQL查询优化器如何利用统计信息,并详细演示了如何通过创建扩展统计信息(Extended Statistics)来解决列间相关性导致的估算偏差问题。 通过依赖关系、多变量唯一值和多变量最常见值三种策略,结合真实的EXPLAIN ANALYZE对比数据,展示了如何显著提升复杂查询的执行效率,从秒级降低到毫秒级。
评论点赞收藏496 天前

登录芦苇

登录后关注作者、收藏内容和参与讨论。