跳转到主要内容

PostgreSQL 大法师

冯若航 @Vonng / Pigsty

PostgreSQL 生态进展,以及开发、使用、运维、管理、诊断、调优的经验分享。

PostgreSQL 大法师
是 Oracle 的失误让 PostgreSQL 赢了吗?PostgreSQLOracle技术评论
井喷:修了 28 个 CVE、110 个 BUG,PG 最新小版本发布PostgreSQLPG管理安全翻译
龙芯,正式进入 PostgreSQL 官方仓库PostgreSQLPG生态硬件
PostgreSQL 三十岁生日快乐PostgreSQLPG生态开源
瞬间克隆 PostgreSQL 数据库,无需黑魔法PostgreSQLPigsty工具
什么是 PostgreSQL 发行版?PostgreSQLPigsty
PostgreSQL,三十而立PostgreSQLPG生态
参加 PostgreSQL 30周年开发者大会PostgreSQLPG生态随笔
人人可用的 PG 扩展PostgreSQLPG生态扩展
PGConf.Dev 2026 今天在温哥华开幕PostgreSQLPG生态
PostgreSQL 18.4、17.10、16.14、15.18 与 14.23 发布PostgreSQLPG管理
pgBackRest 续命战与开源世界的逼定价PostgreSQLPG生态开源
顶级开源备份工具 pgBackRest 停止维护PostgreSQLPG生态开源
504 个扩展,PG 生态的天花板在哪?PostgreSQLPG生态扩展
PostgreSQL vs MySQL 2026PostgreSQLMySQLPG生态
PG 五大版本中文文档已就绪,欢迎查阅!PostgreSQL文档翻译
PostgreSQL 官网中文版:pg.centerPostgreSQL文档PG生态
PG 扩展百科全书:中英双语,开箱即用PostgreSQLPigstyPG生态扩展
464个扩展开箱即用:新版 PG 扩展目录发布PostgreSQL扩展文档
一天翻译完 PG 生态三大件文档PostgreSQL文档翻译
PostgreSQL 号外紧急补丁版本发布!PostgreSQLPG管理安全
Oracle 兼容的 PG 真的有用吗?PostgreSQLOracle国产数据库
号外:暂缓 PG 最新小版本安装与升级PostgreSQLPG管理
中国厂商首次站上 PGConf.dev 主题演讲台PostgreSQLPG生态
从AGPL到Apache:Pigsty 协议变更的思考Pigsty开源
OpenAI:一套 PG 支持8亿 ChatGPT 用户PostgreSQLCodex
PostgreSQL 高可用到底怎么做?PostgreSQLPG管理
如何快速上手学习 PostgreSQL?PostgreSQL文档
Git for Data: 瞬间克隆PG数据库PostgreSQLPG开发GIS
为什么PG将主宰AI时代的数据库PostgreSQLAI数据库
立足中国,面向全球的 PostgreSQL 发行版PostgreSQLPigsty
PostgreSQL 18 可以上生产用了吗?PostgreSQLPG管理扩展
PG扩展云:解锁 PG 生态的全部潜力PostgreSQL扩展
尝鲜须谨慎:PG新存储引擎故障案例PostgreSQL扩展故障复盘
月饼好吃:又一家PG扩展公司被Databricks收购PostgreSQL扩展商业
聚焦六大功能:PostgreSQL 18 新特性深度解析PostgreSQLPG开发性能
从PG“断供”看软件供应链中的信任问题PostgreSQLPG管理
新坑:PostgreSQL 36计PostgreSQL文档PG管理
专栏:Postgres 大法师PostgreSQL
PostgreSQL主宰数据库世界,而谁来吞噬PG?PostgreSQLPG生态
PostgreSQL 已主宰数据库世界PostgreSQLPG生态
卡脖子:PGDG切断镜像站同步通道PostgreSQLPG管理
PostgreSQL高峰论坛:参会小记PostgreSQLPG生态随笔
再见MySQL,你好PGMySQLPostgreSQL数据库
PostgreSQL + 组播,有希望成为下一个被收购的 neon 吗?PostgreSQLCodex成本
PGCon.dev闪电演讲,硬控PG大佬5分钟PostgreSQLPG生态随笔
PG生态赢得资本市场青睐:Databricks收购Neon,Supabase融资两亿美元,微软财报点名PGPostgreSQLPG生态商业
兼容Oracle的开源 PostgreSQL?PostgreSQLOracle迁移
PG被黑慢MySQL 360倍,这次我真忍不了PostgreSQLMySQL性能
Postgres Extension Day,咱们不见不散PostgreSQL扩展
OrioleDB来了!4x性能,消除顽疾,存算分离PostgreSQL
OpenHalo:MySQL线缆兼容的PostgreSQL来了!PostgreSQLMySQL
PGFS:将数据库作为文件系统PostgreSQL对象存储
PostgreSQL取得对MySQL的压倒性优势PostgreSQLMySQL技术评论
什么?PG小版本发布又翻车了?PostgreSQLPG管理安全
PostgreSQL 生态前沿进展PostgreSQLPG生态
PII数据安全合规与PG Anonymizer最佳实践PostgreSQL安全扩展
第七届PG生态大会:一些感想PostgreSQLPG生态随笔
中译版《PostgreSQL 14 Internals》上线PostgreSQLPG内核文档
小猪骑大象:PG内核与扩展包管理神器PostgreSQL工具
PostgreSQL 2024 社区现状调查报告PostgreSQLPG生态
PostgreSQL 号外小版本发布:17.2, 16.6, 15.10, 14.15, 13.18, 12.22PostgreSQLPG管理
不要更新!发布当日叫停:PG也躲不过大翻车PostgreSQL
PostgreSQL 12 过保,PG 17 上位PostgreSQL
PostgreSQL神功大成!最全扩展仓库来了!PostgreSQLPG生态扩展
PostgreSQL 规约(2024版)PostgreSQLPG开发
PG系创业公司Supabase:$80M C轮融资PostgreSQLPG生态商业
PostgreSQL 17 发布:摊牌了,我不装了!PostgreSQL
PostgreSQL可以替代微软SQL Server吗?PostgreSQLMySQLPG生态
谁整合好DuckDB,谁赢得OLAP世界PostgreSQLPG生态
PostgreSQL小版本更新,17beta3,12将EOLPostgreSQLPG管理
ClickHouse收购PeerDB:这浓眉大眼的也要来搞 PG 了?PostgreSQLOLAP商业
StackOverflow 2024调研:PostgreSQL已经杀疯了PostgreSQLPG生态
duckdb_fdw v1.0.0来了,第13届 PostgreSQL 中国技术大会见OLAPPostgreSQLPG生态
用PG的开发者,年薪比MySQL多赚四成?PostgreSQLMySQL职业
使用Pigsty自建Dify:AI工作流平台PostgreSQLPigsty容器化
让PG停摆一周的大会:PGCon.Dev 2024 参会记PostgreSQLPG生态
PostgreSQL 17 beta1 发布!PostgreSQL
为什么PostgreSQL是未来数据库的事实标准?PostgreSQLPG生态翻译
灿灿荐书:《收获,不止 SQL 优化》PostgreSQLOraclePG开发
PostgreSQL 主要贡献者 Simon Riggs 因坠机去世PostgreSQLPG生态
PostgreSQL会修改开源许可证吗?PostgreSQLPG生态开源翻译
PostgreSQL 正在吞噬数据库世界PostgreSQLPG生态扩展
技术极简主义:一切皆用PostgresPostgreSQLPG生态翻译
PG生态新玩家:ParadeDBPostgreSQLPG生态扩展
快速掌握PostgreSQL版本新特性PostgreSQL文档
令人惊叹的PostgreSQL可伸缩性PostgreSQL性能翻译
中国对PostgreSQL的贡献约等于零吗?PostgreSQLPG生态开源
展望 PostgreSQL 的2024PostgreSQLPG生态翻译
PostgreSQL荣获2024年度数据库之王!(第五次)PostgreSQLPG生态
2023年度数据库:PostgreSQL (DB-Engine)PostgreSQLPG生态
PostgreSQL 宏观查询优化之 pg_stat_statementsPostgreSQLPG管理性能
FerretDB:假扮成MongoDB的PGPostgreSQLMongoDBPG生态扩展
如何用 pg_filedump 抢救数据?PostgreSQLPG管理故障复盘
PG先写脏页还是先写WAL?PostgreSQLPG内核
如何看待 MySQL vs PGSQL 直播闹剧PostgreSQLMySQL技术评论
驳《MySQL:这个星球最成功的数据库》PostgreSQLMySQL技术评论
MySQL:这个星球最成功的数据库MySQLPostgreSQL数据库
向量是新的 JSONPostgreSQL向量扩展翻译
PostgreSQL:最成功的数据库PostgreSQLPG生态
AI大模型与向量库 PGVectorPostgreSQLPG开发扩展向量
PostgreSQL 到底有多强?PostgreSQLPG生态性能
为什么PostgreSQL是最成功的数据库?PostgreSQLPG生态
开箱即用的PG发行版:PigstyPostgreSQLPigstyRDS
开源PG全家桶上手指南PostgreSQLPG管理
为什么PostgreSQL前途无量?PostgreSQLPG生态
高可用PgSQL集群架构设计与落地PostgreSQL架构PG管理
高级模糊查询的实现PostgreSQLPG开发
PG中的本地化排序规则PostgreSQLPG管理
PostgreSQL 逻辑复制详解PostgreSQLPG管理
PG复制标识详解(Replica Identity)PostgreSQLPG管理PG开发
PG慢查询诊断方法论PostgreSQLPG管理性能
故障档案:时间回溯导致的Patroni故障PostgreSQLPG管理故障复盘
在线修改主键列类型PostgreSQLPG管理
黄金监控指标:错误延迟吞吐饱和PostgreSQLPG管理监控
数据库集群管理概念与实体命名规范PostgreSQLPG管理架构
PostgreSQL的KPIPostgreSQLPG管理监控
在线修改PG字段类型PostgreSQLPG管理迁移
事务隔离等级注意事项PostgreSQLPG开发
前后端通信线缆协议PostgreSQLPG开发PG内核
故障档案:PG安装Extension导致无法连接PostgreSQLPG管理扩展故障复盘
CDC 变更数据捕获机理PostgreSQLPG开发
PostgreSQL中的锁PostgreSQLPG开发PG管理
GIN搜索的O(n²)复杂度PostgreSQLPG开发
PostgreSQL 常见复制拓扑方案PostgreSQLPG管理架构
温备:使用pg_receivewalPostgreSQLPG管理备份
PostgreSQL监控系统概览PostgreSQL监控PG管理
故障档案:pg_dump导致的连接池污染PostgreSQLPG管理故障复盘
PostgreSQL数据页面损坏修复PostgreSQLPG管理故障复盘
关系膨胀的监控与治理PostgreSQLPG管理
TimescaleDB 快速上手PostgreSQLPG管理扩展
PipelineDB快速上手PostgreSQLPG管理扩展
故障档案:序列号消耗过快导致整型溢出PostgreSQLPG管理故障复盘
故障档案:PostgreSQL事务号回卷PostgreSQLPG管理故障复盘
PostgreSQL的触发器使用注意事项PostgreSQLPG开发
GeoIP 地理逆查询优化PostgreSQLPG开发扩展GIS
PostgreSQL开发规约(2018版)PostgreSQLPG开发软件工程
PostgreSQL好处都有啥PostgreSQLPG生态
PostGIS高效解决行政区划归属查询PostgreSQLPG开发GIS
KNN极致优化:从RDS到PostGISPostgreSQLPG开发机器学习GIS
监控PG中的表大小PostgreSQLPG管理监控
PgAdmin安装配置PostgreSQLPG管理工具
故障档案:快慢不匀雪崩PostgreSQLPG管理故障复盘
Bash与psql小技巧PostgreSQLPG管理工具
用 Exclude 实现互斥约束PostgreSQLPG开发
函数易变性等级分类PostgreSQLPG开发
Distinct On 去除重复数据PostgreSQLPG开发
PostgreSQL例行维护PostgreSQLPG管理
备份恢复手段概览PostgreSQLPG管理备份
Pgbouncer快速上手PostgreSQLPG管理
PgBackRest2中文文档PostgreSQLPG管理备份
使用sysbench测试PostgreSQL性能PostgreSQLPG管理性能
使用FIO测试磁盘性能PostgreSQLPG管理性能
空中换引擎:PostgreSQL不停机迁移数据PostgreSQLPG管理迁移
PG服务器日志常规配置PostgreSQLPG管理监控
找出没用过的索引PostgreSQLPG管理
批量配置SSH免密登录PostgreSQLPG管理
Wireshark抓包分析协议PostgreSQLPG管理工具
file_fdw妙用无穷——从数据库读取系统信息PostgreSQLPG管理扩展
源码编译安装 PostGISPostgreSQLPG管理扩展
Linux 常用统计 CLI 工具PostgreSQLPG管理工具
Go数据库教程:database/sqlPostgreSQL软件工程
GO与PG实现缓存同步PostgreSQLPG开发
用触发器审计数据变化PostgreSQLPG开发
SQL实现ItemCF推荐系统PostgreSQLPG开发机器学习
UUID性质原理与应用PostgreSQLPG开发架构
PostgreSQL MongoFDW安装部署PostgreSQLPG管理扩展

向量是新的 JSON

Jonathan Katz 5118 字 11 分钟

以向量为代表的功能将成为构建应用时的关键要素,正如历史上的JSON一样。而PostgreSQL再一次站在时代风口浪尖引领数据库潮流,在向量扩展的加持下稳拿AI时代的高速增长。

PostgreSQL的KPI

冯若航 6468 字 13 分钟

管数据库和管人差不多,都需要定KPI。本文介绍了一种衡量PostgreSQL负载的方式:使用一种单一横向可比的指标,名曰PG Load(PG负载)。

  • 驳《MySQL:这个星球最成功的数据库》

    冯若航 发布于 PGSQL 4932 字 10 分钟

    冯若航PostgreSQLMySQL技术评论

    Featured Image for 驳《MySQL:这个星球最成功的数据库》

    这篇《MySQL:这个星球最成功的数据库》是对我《PostgreSQL:世界上最成功的数据库》一文的回应。可惜文中充斥着大量事实性错误,谎言与诡辩,扣大帽子和人身攻讦。既然有人不要体面,那今天我就用数据与事实来帮他体面。扫码预约今晚的直播,观看几分钟后开始的 MySQL 与 PostgreSQL 对决开源中国直播。 问卷能否代表全球? 2023 年 StackOverflow 调研结果已经新鲜出炉, 来自185个国家与地区的9万名开发者给出了高质量的反馈。在今年的调研中,PostgreSQL 在 …

    这篇《MySQL:这个星球最成功的数据库》是对我《PostgreSQL:世界上最成功的数据库》一文的回应。可惜文中充斥着大量事实性错误,谎言与诡辩,扣大帽子和人身攻讦。既然有人不要体面,那今天我就用数据与事实来帮他体面。扫码预约今晚的直播,观看几分钟后开始的 MySQL 与 PostgreSQL 对决开源中国直播。 问卷能否代表全球? 2023 年 StackOverflow 调研结果已经新鲜出炉, 来自185个国家与地区的9万名开发者给出了高质量的反馈。在今年的调研中,PostgreSQL 在 …

  • MySQL:这个星球最成功的数据库

    姜承尧 发布于 PGSQL 4048 字 9 分钟

    姜承尧MySQLPostgreSQL数据库

    Featured Image for MySQL:这个星球最成功的数据库

    原作者:姜承尧 · 微信公众号转载页 最近有篇公众号文章大火,说 PostgreSQL 是世界上最成功的数据库。姜老师双手插兜,仰望海底星空,心想这篇文章的标题取得真好,妥妥的1W+的阅读量。为什么自己做不到如此厚颜无耻呢?\ 其实,姜老师没这么玻璃心,也没怎么把这篇文章放心上。 一个卖 PostgreSQL 数据库服务的人,自卖自夸,好为后续自己的生意做铺垫。这就是那篇文章的底层逻辑。问题不少 IMG 同学让姜老师出来发言,更有素未谋面的专业数据库内核从业同学在 Twitter 上留言希望姜 …

    原作者:姜承尧 · 微信公众号转载页 最近有篇公众号文章大火,说 PostgreSQL 是世界上最成功的数据库。姜老师双手插兜,仰望海底星空,心想这篇文章的标题取得真好,妥妥的1W+的阅读量。为什么自己做不到如此厚颜无耻呢?\ 其实,姜老师没这么玻璃心,也没怎么把这篇文章放心上。 一个卖 PostgreSQL 数据库服务的人,自卖自夸,好为后续自己的生意做铺垫。这就是那篇文章的底层逻辑。问题不少 IMG 同学让姜老师出来发言,更有素未谋面的专业数据库内核从业同学在 Twitter 上留言希望姜 …

  • 向量是新的 JSON

    Jonathan Katz 发布于 PGSQL 5118 字 11 分钟

    Jonathan KatzPostgreSQL向量扩展翻译

    Featured Image for 向量是新的 JSON

    “向量是新的JSON”,这本身就是一种很有趣的说法。因为 向量(Vector)是一种已经被深入研究过的 数学结构,而 JSON 是一种 数据交换格式。然而,在数据存储和检索的世界中,这两种数据表示方式都已经成为了各自领域的通用语言,成为(或即将成为)现代应用开发中必不可少的要素。如果按当下的趋势发展,向量将会像 JSON 一样,成为构建应用时的关键要素。 生成型AI 引发的热潮促使开发者寻找一种简便的方法来存储与查询这些系统的 输出。出于很多因素,PostgreSQL 成为了最自然的选择。但即使 …

    “向量是新的JSON”,这本身就是一种很有趣的说法。因为 向量(Vector)是一种已经被深入研究过的 数学结构,而 JSON 是一种 数据交换格式。然而,在数据存储和检索的世界中,这两种数据表示方式都已经成为了各自领域的通用语言,成为(或即将成为)现代应用开发中必不可少的要素。如果按当下的趋势发展,向量将会像 JSON 一样,成为构建应用时的关键要素。 生成型AI 引发的热潮促使开发者寻找一种简便的方法来存储与查询这些系统的 输出。出于很多因素,PostgreSQL 成为了最自然的选择。但即使 …

  • PostgreSQL:最成功的数据库

    冯若航 发布于 PGSQL 8095 字 17 分钟

    冯若航PostgreSQLPG生态

    Featured Image for PostgreSQL:最成功的数据库

    2023 年 StackOverflow 调研结果已经新鲜出炉,来自185个国家与地区的9万名开发者给出了高质量的反馈。 在今年的调研中,PostgreSQL 在数据库全部三项调研指标(流行度,喜爱度,需求度)上获得无可争议的全能冠军,成为真正意义上“最成功”的数据库 —— “PostgreSQL is the Linux of Database!” https://demo.pigsty.cc/d/sf-db-survey 当我们说一个数据库“成功”时,究竟在说什么?评价一个数据库有许多标准: …

    2023 年 StackOverflow 调研结果已经新鲜出炉,来自185个国家与地区的9万名开发者给出了高质量的反馈。 在今年的调研中,PostgreSQL 在数据库全部三项调研指标(流行度,喜爱度,需求度)上获得无可争议的全能冠军,成为真正意义上“最成功”的数据库 —— “PostgreSQL is the Linux of Database!” https://demo.pigsty.cc/d/sf-db-survey 当我们说一个数据库“成功”时,究竟在说什么?评价一个数据库有许多标准: …

  • AI大模型与向量库 PGVector

    冯若航 发布于 PGSQL 3640 字 8 分钟

    冯若航PostgreSQLPG开发扩展向量

    Featured Image for AI大模型与向量库 PGVector

    新 AI 应用在过去一年中出现了指数爆炸的增长态势,而这些应用面临的一个共同挑战是如何大规模地 存储 与 查询 以向量表示的 AI Embedding。本文聚焦被 AI 炒火了的 向量数据库,介绍了AI嵌入与向量存储检索的基本原理,并用一个具体的知识库检索案例来串联介绍向量数据库插件 PGVECTOR 的功能、性能、获取与应用。 AI是怎么工作的 GPT 展现出来了强大的智能水平,它的成功有很多因素,但在工程上关键的一步是:神经网络与大语言模型将一个语言问题转化为数学问题,并使用工程手段高效解决 …

    新 AI 应用在过去一年中出现了指数爆炸的增长态势,而这些应用面临的一个共同挑战是如何大规模地 存储 与 查询 以向量表示的 AI Embedding。本文聚焦被 AI 炒火了的 向量数据库,介绍了AI嵌入与向量存储检索的基本原理,并用一个具体的知识库检索案例来串联介绍向量数据库插件 PGVECTOR 的功能、性能、获取与应用。 AI是怎么工作的 GPT 展现出来了强大的智能水平,它的成功有很多因素,但在工程上关键的一步是:神经网络与大语言模型将一个语言问题转化为数学问题,并使用工程手段高效解决 …

  • PostgreSQL 到底有多强?

    冯若航 发布于 PGSQL 4756 字 10 分钟

    冯若航PostgreSQLPG生态性能

    Featured Image for PostgreSQL 到底有多强?

    上回,我们通过分析 StackOverflow 的用户调研数据,说明了《为什么PostgreSQL是最成功的数据库》。 而这一次我们将用性能数据来说话,聊聊最成功的 PostgreSQL 到底有多强,帮助大家做到“心中有数”。 太长不看 如果您对以下这些问题有兴趣,那么本文会对您有所帮助: PostgreSQL 到底性能有多强? 点查 QPS 60万+,最高达 200 万。读写 TPS (4写1读)每秒 7 万+,最高达14万。 PostgreSQL 与 MySQL 的极限性能对比 极限条件下 …

    上回,我们通过分析 StackOverflow 的用户调研数据,说明了《为什么PostgreSQL是最成功的数据库》。 而这一次我们将用性能数据来说话,聊聊最成功的 PostgreSQL 到底有多强,帮助大家做到“心中有数”。 太长不看 如果您对以下这些问题有兴趣,那么本文会对您有所帮助: PostgreSQL 到底性能有多强? 点查 QPS 60万+,最高达 200 万。读写 TPS (4写1读)每秒 7 万+,最高达14万。 PostgreSQL 与 MySQL 的极限性能对比 极限条件下 …

  • 为什么PostgreSQL是最成功的数据库?

    冯若航 发布于 PGSQL 7139 字 15 分钟

    冯若航PostgreSQLPG生态

    Featured Image for 为什么PostgreSQL是最成功的数据库?

    当我们说一个数据库"成功"时,到底在说什么?是指功能性能易用性,还是成本生态复杂度?评价指标有很多,但这件事最终还得由用户来定夺。 数据库的用户是开发者,而开发者的意愿、喜好、选择又如何?StackOverflow 连续六年,向来自180个国家的七万多开发者问了这三个问题。 总览这六年的调研结果,不难看出在2022年,PostgreSQL 已经同时在这三项上登顶夺冠,成了字面意义上 “最成功的数据库”: PostgreSQL 成为 专业开发者 最常使用 的数据库!(Used) …

    当我们说一个数据库"成功"时,到底在说什么?是指功能性能易用性,还是成本生态复杂度?评价指标有很多,但这件事最终还得由用户来定夺。 数据库的用户是开发者,而开发者的意愿、喜好、选择又如何?StackOverflow 连续六年,向来自180个国家的七万多开发者问了这三个问题。 总览这六年的调研结果,不难看出在2022年,PostgreSQL 已经同时在这三项上登顶夺冠,成了字面意义上 “最成功的数据库”: PostgreSQL 成为 专业开发者 最常使用 的数据库!(Used) …

  • 开箱即用的PG发行版:Pigsty

    冯若航 发布于 PGSQL 4585 字 10 分钟

    冯若航PostgreSQLPigstyRDS

    Featured Image for 开箱即用的PG发行版:Pigsty

    什么是Pigsty Pigsty是开箱即用的生产级开源PostgreSQL发行版。 所谓 发行版(Distribution),指的是由数据库内核及其一组软件包组成的数据库整体解决方案。例如,Linux是一个 操作系统内核,而RedHat,Debian,SUSE则是基于此内核的 操作系统发行版。PostgreSQL是一个 数据库内核,而 Pigsty,BigSQL,Percona,各种云RDS,换皮数据库则是基于此内核的 数据库发行版。 Pigsty区别于其他数据库发行版的五个核心特性为: 全面专 …

    什么是Pigsty Pigsty是开箱即用的生产级开源PostgreSQL发行版。 所谓 发行版(Distribution),指的是由数据库内核及其一组软件包组成的数据库整体解决方案。例如,Linux是一个 操作系统内核,而RedHat,Debian,SUSE则是基于此内核的 操作系统发行版。PostgreSQL是一个 数据库内核,而 Pigsty,BigSQL,Percona,各种云RDS,换皮数据库则是基于此内核的 数据库发行版。 Pigsty区别于其他数据库发行版的五个核心特性为: 全面专 …

  • 开源PG全家桶上手指南

    冯若航 发布于 PGSQL 940 字 2 分钟

    冯若航PostgreSQLPG管理

    Featured Image for 开源PG全家桶上手指南

    PostgreSQL中文社区又开始在线直播啦!本周日(5月23日晚7:30),由我带给大家来一段单口相声 —— 《开源PG全家桶上手指南》。 Pigsty是 开源 的PostgreSQL一条龙解决方案,主要有以下三个目标: 做最顶尖最专业的 开源PostgreSQL 监控系统 做门槛最低最好用的 开源PostgreSQL 管控方案 做开箱即用的数据分析可视化集成环境 \ \ 详情参考:https://pigsty.cc 谁会感兴趣? PostgreSQL DBA,运维,DevOps:Pigsty …

    PostgreSQL中文社区又开始在线直播啦!本周日(5月23日晚7:30),由我带给大家来一段单口相声 —— 《开源PG全家桶上手指南》。 Pigsty是 开源 的PostgreSQL一条龙解决方案,主要有以下三个目标: 做最顶尖最专业的 开源PostgreSQL 监控系统 做门槛最低最好用的 开源PostgreSQL 管控方案 做开箱即用的数据分析可视化集成环境 \ \ 详情参考:https://pigsty.cc 谁会感兴趣? PostgreSQL DBA,运维,DevOps:Pigsty …

  • 为什么PostgreSQL前途无量?

    冯若航 发布于 PGSQL 10302 字 21 分钟

    冯若航PostgreSQLPG生态

    Featured Image for 为什么PostgreSQL前途无量?

    最近做的事儿都围绕着PostgreSQL生态,因为我一直觉得这是一个前途无量的方向。 为什么这么说?因为数据库是信息系统的核心组件,关系型数据库是数据库中的绝对主力,而PostgreSQL是世界上最先进的开源关系型数据库。占据天时地利,何愁大业不成? 做一件事最重要的就是认清形势,时来天地皆同力,运去英雄不自由。 天下大势 今天下三分,然Oracle | MySQL | SQL Server 疲敝,日薄西山。PostgreSQL紧随其后,如日中天。前四的数据库中,前三者都在走下坡路,唯有PG增长 …

    最近做的事儿都围绕着PostgreSQL生态,因为我一直觉得这是一个前途无量的方向。 为什么这么说?因为数据库是信息系统的核心组件,关系型数据库是数据库中的绝对主力,而PostgreSQL是世界上最先进的开源关系型数据库。占据天时地利,何愁大业不成? 做一件事最重要的就是认清形势,时来天地皆同力,运去英雄不自由。 天下大势 今天下三分,然Oracle | MySQL | SQL Server 疲敝,日薄西山。PostgreSQL紧随其后,如日中天。前四的数据库中,前三者都在走下坡路,唯有PG增长 …

  • 高可用PgSQL集群架构设计与落地

    冯若航 发布于 PGSQL 5906 字 12 分钟

    冯若航PostgreSQL架构PG管理

    Featured Image for 高可用PgSQL集群架构设计与落地

    把数据库拉起来是一回事,部署专业水准的数据库集群又是另一回事。想要真正用好管好数据库,需要良好的架构设计让多种组件协同配合起来。今天我们就来介绍一下典型的高可用PgSQL集群架构及其 落地方式。 本文将以 Pigsty v0.8 为例,介绍高可用集群的设计与部署。 “ Pigsty针对大规模数据库集群监控与管理而设计,提供业界顶尖的PostgreSQL监控系统与开箱即用的高可用数据库供给方案,为用户带来极致的可观测性与丝滑的数据库使用体验。 Pigsty基于开源生态构建,旨在降低 …

    把数据库拉起来是一回事,部署专业水准的数据库集群又是另一回事。想要真正用好管好数据库,需要良好的架构设计让多种组件协同配合起来。今天我们就来介绍一下典型的高可用PgSQL集群架构及其 落地方式。 本文将以 Pigsty v0.8 为例,介绍高可用集群的设计与部署。 “ Pigsty针对大规模数据库集群监控与管理而设计,提供业界顶尖的PostgreSQL监控系统与开箱即用的高可用数据库供给方案,为用户带来极致的可观测性与丝滑的数据库使用体验。 Pigsty基于开源生态构建,旨在降低 …

  • 高级模糊查询的实现

    冯若航 发布于 PGSQL 4963 字 10 分钟

    冯若航PostgreSQLPG开发

    Featured Image for 高级模糊查询的实现

    日常开发中,经常见到有模糊查询的需求。今天就简单聊一聊如何用PostgreSQL实现一些高级一点的模糊查询。 当然这里说的模糊查询,不是 LIKE 表达式前模糊后模糊两侧模糊,这种老掉牙的东西。让我们直接用一个具体的例子开始吧。 问题 现在,假设我们做了个应用商店,想给用户提供 搜索功能。用户随便输入点什么,找出所有与输入内容匹配的应用,排个序返回给用户。 严格来说,这种需求其实是需要一个搜索引擎,最好还是用专用软件,例如ElasticSearch来搞。但实际上只要不是特别复杂的逻辑,也可以很好 …

    日常开发中,经常见到有模糊查询的需求。今天就简单聊一聊如何用PostgreSQL实现一些高级一点的模糊查询。 当然这里说的模糊查询,不是 LIKE 表达式前模糊后模糊两侧模糊,这种老掉牙的东西。让我们直接用一个具体的例子开始吧。 问题 现在,假设我们做了个应用商店,想给用户提供 搜索功能。用户随便输入点什么,找出所有与输入内容匹配的应用,排个序返回给用户。 严格来说,这种需求其实是需要一个搜索引擎,最好还是用专用软件,例如ElasticSearch来搞。但实际上只要不是特别复杂的逻辑,也可以很好 …

  • PG中的本地化排序规则

    冯若航 发布于 PGSQL 4703 字 10 分钟

    冯若航PostgreSQLPG管理

    Featured Image for PG中的本地化排序规则

    为什么Pigsty在初始化Postgres数据库时默认指定了 locale=C 与 encoding=UTF8 答案其实很简单,除非真的明确知道自己会用到LOCALE相关功能,否则就根本不应该配置 C.UTF8 之外的任何字符编码与本地化排序规则选项。 关于字符编码的部分,之前写过一篇文章专门介绍,这里表过不提。今天专门说一下 LOCALE(本地化)的配置问题。 如果说服务端字符编码配置因为某些原因配置为 UTF8 之外的值也许还情有可原,那么 LOCALE 配置为 C 之外的任何选就是 无可救 …

    为什么Pigsty在初始化Postgres数据库时默认指定了 locale=C 与 encoding=UTF8 答案其实很简单,除非真的明确知道自己会用到LOCALE相关功能,否则就根本不应该配置 C.UTF8 之外的任何字符编码与本地化排序规则选项。 关于字符编码的部分,之前写过一篇文章专门介绍,这里表过不提。今天专门说一下 LOCALE(本地化)的配置问题。 如果说服务端字符编码配置因为某些原因配置为 UTF8 之外的值也许还情有可原,那么 LOCALE 配置为 C 之外的任何选就是 无可救 …

  • PostgreSQL 逻辑复制详解

    冯若航 发布于 PGSQL 12802 字 26 分钟

    冯若航PostgreSQLPG管理

    Featured Image for PostgreSQL 逻辑复制详解

    逻辑复制 逻辑复制(Logical Replication),是一种根据数据对象的 复制标识(Replica Identity)(通常是主键)复制数据对象及其变化的方法。 逻辑复制 这个术语与 物理复制 相对应,物理复制使用精确的块地址与逐字节复制,而逻辑复制则允许对复制过程进行精细的控制。 逻辑复制基于 发布(Publication) 与 订阅(Subscription)模型: 一个 发布者(Publisher) 上可以有多个 发布,一个 订阅者(Subscriber) 上可以有多个 订阅 …

    逻辑复制 逻辑复制(Logical Replication),是一种根据数据对象的 复制标识(Replica Identity)(通常是主键)复制数据对象及其变化的方法。 逻辑复制 这个术语与 物理复制 相对应,物理复制使用精确的块地址与逐字节复制,而逻辑复制则允许对复制过程进行精细的控制。 逻辑复制基于 发布(Publication) 与 订阅(Subscription)模型: 一个 发布者(Publisher) 上可以有多个 发布,一个 订阅者(Subscriber) 上可以有多个 订阅 …

  • PG复制标识详解(Replica Identity)

    冯若航 发布于 PGSQL 3874 字 8 分钟

    冯若航PostgreSQLPG管理PG开发

    Featured Image for PG复制标识详解(Replica Identity)

    引子:土法逻辑复制 复制身份的概念,服务于 逻辑复制。 逻辑复制的基本工作原理是,将逻辑发布相关表上 对行的增删改 事件解码,复制到逻辑订阅者上执行。 逻辑复制的工作方式有点类似于行级触发器,在事务执行后对变更的元组逐行触发。 假设您需要自己通过触发器实现逻辑复制,将一章表A上的变更复制到另一张表B中。通常情况下,这个触发器的函数逻辑通常会长这样: -- 通知触发器 CREATE OR REPLACE FUNCTION replicate_change() RETURNS TRIGGER AS …

    引子:土法逻辑复制 复制身份的概念,服务于 逻辑复制。 逻辑复制的基本工作原理是,将逻辑发布相关表上 对行的增删改 事件解码,复制到逻辑订阅者上执行。 逻辑复制的工作方式有点类似于行级触发器,在事务执行后对变更的元组逐行触发。 假设您需要自己通过触发器实现逻辑复制,将一章表A上的变更复制到另一张表B中。通常情况下,这个触发器的函数逻辑通常会长这样: -- 通知触发器 CREATE OR REPLACE FUNCTION replicate_change() RETURNS TRIGGER AS …

  • PG慢查询诊断方法论

    冯若航 发布于 PGSQL 3072 字 7 分钟

    冯若航PostgreSQLPG管理性能

    Featured Image for PG慢查询诊断方法论

    You can’t optimize what you can’t measure 慢查询是在线业务数据库的大敌,如何诊断定位慢查询是DBA的必修课题。 本文介绍了使用监控系统 —— Pigsty诊断慢查询的一般方法论。 慢查询:危害 对于实际服务于在线业务事务处理的PostgreSQL数据库而言,慢查询的危害包括: 慢查询挤占数据库连接,导致普通查询无连接可用,堆积并导致数据库雪崩。 慢查询长时间锁住了主库已经清理掉的旧版本元组,导致流复制重放进程锁死,导致主从复制延迟。 查询越慢,查询间相 …

    You can’t optimize what you can’t measure 慢查询是在线业务数据库的大敌,如何诊断定位慢查询是DBA的必修课题。 本文介绍了使用监控系统 —— Pigsty诊断慢查询的一般方法论。 慢查询:危害 对于实际服务于在线业务事务处理的PostgreSQL数据库而言,慢查询的危害包括: 慢查询挤占数据库连接,导致普通查询无连接可用,堆积并导致数据库雪崩。 慢查询长时间锁住了主库已经清理掉的旧版本元组,导致流复制重放进程锁死,导致主从复制延迟。 查询越慢,查询间相 …

  • 故障档案:时间回溯导致的Patroni故障

    冯若航 发布于 PGSQL 288 字 1 分钟

    冯若航PostgreSQLPG管理故障复盘

    Featured Image for 故障档案:时间回溯导致的Patroni故障

    摘要:机器因为故障重启,NTP服务在PG启动后修复了PG的时间,导致 Patroni 无法启动。 Patroni中的故障信息如下所示: Process %s is not postmaster, too much difference between PID file start time %s and process start time %s patroni 进程启动时间和pid时间不一致。就会认为:postgres is not running。 两个时间相差超过30秒。patroni 就 …

    摘要:机器因为故障重启,NTP服务在PG启动后修复了PG的时间,导致 Patroni 无法启动。 Patroni中的故障信息如下所示: Process %s is not postmaster, too much difference between PID file start time %s and process start time %s patroni 进程启动时间和pid时间不一致。就会认为:postgres is not running。 两个时间相差超过30秒。patroni 就 …

  • 在线修改主键列类型

    冯若航 发布于 PGSQL 1470 字 3 分钟

    冯若航PostgreSQLPG管理

    Featured Image for 在线修改主键列类型

    如何在线修改主键列类型,比如将 INT 至 BIGINT,同时又不影响业务? 假设在PG中有一个表,在设计的时候拍脑袋使用了 INT 整型主键,现在业务蓬勃发展发现序列号不够用了,想升级到BIGINT类型。这时候该怎么做呢? 拍脑袋的方法当然是直接使用DDL修改类型: ALTER TABLE pgbench_accounts ALTER COLUMN aid SET DATA TYPE BIGINT; 但这种方式对于访问频繁的生产大表是不可行的 太长;不看 让我们以 pgbench 自带的场景为 …

    如何在线修改主键列类型,比如将 INT 至 BIGINT,同时又不影响业务? 假设在PG中有一个表,在设计的时候拍脑袋使用了 INT 整型主键,现在业务蓬勃发展发现序列号不够用了,想升级到BIGINT类型。这时候该怎么做呢? 拍脑袋的方法当然是直接使用DDL修改类型: ALTER TABLE pgbench_accounts ALTER COLUMN aid SET DATA TYPE BIGINT; 但这种方式对于访问频繁的生产大表是不可行的 太长;不看 让我们以 pgbench 自带的场景为 …

  • 黄金监控指标:错误延迟吞吐饱和

    冯若航 发布于 PGSQL 2351 字 5 分钟

    冯若航PostgreSQLPG管理监控

    Featured Image for 黄金监控指标:错误延迟吞吐饱和

    前言 玩数据库和玩车有一个共通之处,就是都需要经常看仪表盘。 盯着仪表盘干什么,看指标。为什么看指标,掌握当前运行状态才能有效施加控制。 车有很多指标:车速,胎压,扭矩,刹车片磨损,各种温度,等等等等,各式各样。 但人的注意力空间有限,仪表盘也就那么大, 所以,指标可以分两类: 你会去看的:黄金指标 / 关键指标 / 核心指标 你不会看的:黑匣子指标 / 冷指标。 黄金指标就是那几个关键性的核心数据,需要时刻保持关注(或者让自动驾驶系统/报警系统替你时刻保持关注),而冷指标通常只有故障排查时才 …

    前言 玩数据库和玩车有一个共通之处,就是都需要经常看仪表盘。 盯着仪表盘干什么,看指标。为什么看指标,掌握当前运行状态才能有效施加控制。 车有很多指标:车速,胎压,扭矩,刹车片磨损,各种温度,等等等等,各式各样。 但人的注意力空间有限,仪表盘也就那么大, 所以,指标可以分两类: 你会去看的:黄金指标 / 关键指标 / 核心指标 你不会看的:黑匣子指标 / 冷指标。 黄金指标就是那几个关键性的核心数据,需要时刻保持关注(或者让自动驾驶系统/报警系统替你时刻保持关注),而冷指标通常只有故障排查时才 …

  • 数据库集群管理概念与实体命名规范

    冯若航 发布于 PGSQL 3913 字 8 分钟

    冯若航PostgreSQLPG管理架构

    Featured Image for 数据库集群管理概念与实体命名规范

    名之则可言也,言之则可行也。 概念及其命名是非常重要的东西,命名风格体现了工程师对系统架构的认知。定义不清的概念将导致沟通困惑,随意设定的名称将产生意想不到的额外负担。因此需要审慎地设计。 TL;DR 集群(Cluster) 是基本自治单元,由用户指定唯一标识,表达业务含义,作为顶层命名空间。 集群在硬件层面上包含一系列的 节点(Node),即物理机,虚机(或Pod),可以通过IP唯一标识。 集群在软件层面上包含一系列的 实例(Instance),即软件服务器,可以通过IP:Port唯一标识。 …

    名之则可言也,言之则可行也。 概念及其命名是非常重要的东西,命名风格体现了工程师对系统架构的认知。定义不清的概念将导致沟通困惑,随意设定的名称将产生意想不到的额外负担。因此需要审慎地设计。 TL;DR 集群(Cluster) 是基本自治单元,由用户指定唯一标识,表达业务含义,作为顶层命名空间。 集群在硬件层面上包含一系列的 节点(Node),即物理机,虚机(或Pod),可以通过IP唯一标识。 集群在软件层面上包含一系列的 实例(Instance),即软件服务器,可以通过IP:Port唯一标识。 …

  • PostgreSQL的KPI

    冯若航 发布于 PGSQL 6468 字 13 分钟

    冯若航PostgreSQLPG管理监控

    Featured Image for PostgreSQL的KPI

    管数据库和管人差不多,都需要定KPI(关键性能指标)。那么数据库的KPI是什么?本文介绍了一种衡量PostgreSQL负载的方式:使用一种单一横向可比,与负载类型和机器类型基本无关的指标,名曰 PG Load(PG负载)。 0x01 Introduction 在现实生产中,经常会有衡量数据库性能与负载,评估数据库水位的需求。一种最朴素的形式就是,能不能有一个类似于KPI的单一指标,能直接了当地告诉用户他心爱的数据库负载有没有超过警戒线?工作量到底饱和不饱和? 当然这里其实隐含着一个重要信息,即用 …

    管数据库和管人差不多,都需要定KPI(关键性能指标)。那么数据库的KPI是什么?本文介绍了一种衡量PostgreSQL负载的方式:使用一种单一横向可比,与负载类型和机器类型基本无关的指标,名曰 PG Load(PG负载)。 0x01 Introduction 在现实生产中,经常会有衡量数据库性能与负载,评估数据库水位的需求。一种最朴素的形式就是,能不能有一个类似于KPI的单一指标,能直接了当地告诉用户他心爱的数据库负载有没有超过警戒线?工作量到底饱和不饱和? 当然这里其实隐含着一个重要信息,即用 …

  • 在线修改PG字段类型

    冯若航 发布于 PGSQL 1453 字 3 分钟

    冯若航PostgreSQLPG管理迁移

    Featured Image for 在线修改PG字段类型

    场景 在数据库的生命周期中,有一类需求是很常见的,修改字段类型。例如: 使用 INT 作为主键,结果发现业务红红火火,INT32的21亿序号不够用了,想要升级为 BIGINT 使用 BIGINT 存身份证号,结果发现里面有个 X 需要改为 TEXT 类型。 使用 FLOAT 存放货币,发现精度丢失,想要修改为Decimal 使用 TEXT 存储JSON字段,想用到PostgreSQL的JSON特性,修改为JSONB类型。 那么,如何应对这种需求呢? 常规操作 通常来说,ALTER TABLE 可 …

    场景 在数据库的生命周期中,有一类需求是很常见的,修改字段类型。例如: 使用 INT 作为主键,结果发现业务红红火火,INT32的21亿序号不够用了,想要升级为 BIGINT 使用 BIGINT 存身份证号,结果发现里面有个 X 需要改为 TEXT 类型。 使用 FLOAT 存放货币,发现精度丢失,想要修改为Decimal 使用 TEXT 存储JSON字段,想用到PostgreSQL的JSON特性,修改为JSONB类型。 那么,如何应对这种需求呢? 常规操作 通常来说,ALTER TABLE 可 …

  • 事务隔离等级注意事项

    冯若航 发布于 PGSQL 3070 字 7 分钟

    冯若航PostgreSQLPG开发

    Featured Image for 事务隔离等级注意事项

    PostgreSQL实际上只有两种事务隔离等级:读已提交(Read Commited) 与 可序列化(Serializable) 基础 SQL标准定义了四种隔离级别,但PostgreSQL实际上只有两种事务隔离等级:读已提交(Read Commited) 与 可序列化(Serializable) SQL标准定义了四种隔离级别,但实际上这也是很粗鄙的一种划分。详情请参考并发异常那些事。 查看/设置事务隔离等级 通过执行:SELECT …

    PostgreSQL实际上只有两种事务隔离等级:读已提交(Read Commited) 与 可序列化(Serializable) 基础 SQL标准定义了四种隔离级别,但PostgreSQL实际上只有两种事务隔离等级:读已提交(Read Commited) 与 可序列化(Serializable) SQL标准定义了四种隔离级别,但实际上这也是很粗鄙的一种划分。详情请参考并发异常那些事。 查看/设置事务隔离等级 通过执行:SELECT …

  • 前后端通信线缆协议

    冯若航 发布于 PGSQL 1168 字 3 分钟

    冯若航PostgreSQLPG开发PG内核

    Featured Image for 前后端通信线缆协议

    了解PostgreSQL服务器与客户端通信使用的TCP协议 启动阶段 启动阶段的基本流程如下所示: 客户端发送一条 StartupMessage (F) 向服务端发起连接请求 载荷包括 0x30000 的Int32版本号魔数,以及一系列kv结构的运行时参数(NULL0分割,必须参数为 user), 客户端等待服务端响应,主要是等待服务端发送的 ReadyForQuery (Z) 事件,该事件代表服务端已经准备好接收请求。 上面是连接建立过程中最主要的两个事件,其他事件包括包括认证消息 …

    了解PostgreSQL服务器与客户端通信使用的TCP协议 启动阶段 启动阶段的基本流程如下所示: 客户端发送一条 StartupMessage (F) 向服务端发起连接请求 载荷包括 0x30000 的Int32版本号魔数,以及一系列kv结构的运行时参数(NULL0分割,必须参数为 user), 客户端等待服务端响应,主要是等待服务端发送的 ReadyForQuery (Z) 事件,该事件代表服务端已经准备好接收请求。 上面是连接建立过程中最主要的两个事件,其他事件包括包括认证消息 …