前言各位 PGer 大家好,在此很高兴地告诉各位 ——《PostgreSQL 内参:深入解析运行原理》正式发布了。从最开始萌生翻译成册的想法,再到现今电子版书籍的正式发布,期间磕绊无数,但好在结果是喜人的,三年磨一剑,《PostgreSQL 14 Internals》中文版终于如期而至,各位可...
前言今早在某群里看到一篇名为《PG 的 DDL 还吹?和 MySQL 逐条对线》的文章,被标题吸引,点进去看了一下, 笔者原本以为会是一篇从原理剖析再到最佳实践的鸿篇巨制,实际却大跌眼镜,像被强行喂了一坨。
简而言之,这不是一篇严肃的数据库对比文章,更像是一篇披着技术外衣的 MySQL 爽文。...
前言PG19 里引入了一个很有意思的新东西:SQL/PGQ。
PGQ,全称是 Property Graph Query。这里的 PGQ 不是 PostgreSQL Query,别看见 PG 就自动脑补为 PostgreSQL。官方文档里也专门吐槽了一句,property graph ...
前言在 AI 时代,答案本身正在快速贬值,而提出好问题的能力正在升值。过去,知识的稀缺点在于找不到答案。谁记得多、查得快、经验多,谁就有优势。但是现在不一样了,随着 AI 的不断革新,很多问题你问 AI、搜引擎、几秒钟就能得到一个”看起来不错”的答案。
但问题是答案容易得到,不代表答案有价值。...
前言大家好,我是 CC,之前我曾写过一个比较简单的一键运维巡检工具:pgcheck,它最早是基于 Bash 和一批历久弥新的祖传 SQL 拼起来的,优点是直接、简单、拿来就能用;缺点也很明显:工程结构比较粗糙,扩展不够优雅,配置方式也不够清爽,而且也可能带来一系列的安全隐患。
最近我对它做了一...
前言PG 中的元组是按照列定义顺序存储的,而不同数据类型有不同的长度和对齐要求;如果列顺序不合理,就会产生额外 padding,导致行变大、page 中可容纳行数减少、I/O 增加、cache locality 下降等,合理调整列顺序,可以减少 padding,从而节省磁盘空间。并且...
前言最近笔者在 PGConf 上分享了一篇关于 YMatrix mxvector 的主题 —— How to implement high performance pluggable vectorized executor (PPT 可以下载了)
在这次分享中,我想分享的是 PostgreS...
前言最近花了点时间看了下 PG 中的并行顺序扫描的实现,有了一些新的认知和思考。
页面如何分配?首先是页面分配的问题,假如现在有个表 t,总共 100 个页面,那这些页面是如何分配给多个 worker 的?是人人平等,还是动态分配,亦或是纯随机乱扫?其实对于并行顺序扫描,其核心机制是:多个 w...
前言对于 pgvector,不管是 IVFFlat 还是 HNSW,对于 vector 类型,都有着明确的 up to 2,000 dimensions 的限制 — 即最大 2K 维,那么为何会有这样的限制?
先入为主的片面需要注意的是,前面提到的 2K 维限制是索引层的限制,而不是向量列本身...
前言在 18 的新版本中,包含了诸多惹眼特性,比如异步 I/O、BTREE Skip Scan、UUIDv7 等等,其实在 18 的新版中,还引入了一项很重要的特性 — NUMA 感知,一直以来,PG 就缺乏 NUMA 的可观测性,希望能看到 buffer 属于哪个 node、sha...