PostgreSQL索引和复制技术

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PostgreSQL索引和复制技术相关的知识,希望对你有一定的参考价值。

背景:到目前为止,我一直使用Django和它的ORM来构建小型网站,所以哪个数据库(mysql vs PostgreSQL)正在做窗帘背后的所有工作并不是真正的问题。

最近我决定更多地了解这两者之间的差异。我刚读完这篇(长篇)article,探讨了PostgresSQL中索引是如何工作的,我对以下事实感到非常震惊:

“例如,如果我们有一个表上定义了十几个索引的表,那么只对一个索引覆盖的字段的更新必须传播到所有12个索引中,以反映新行的ctid。”

我根本不是专家,但对我来说听起来很疯狂,在更新不涉及索引的字段时,设计会发生这样的重载。

此外,本文继续解释PostgreSQL复制策略如何在逻辑级别上工作,但在磁盘级别,即主服务器向从服务器发送所有更改的列表(逐字节)以应用于磁盘而不是更多UPDATE <fields> ON <table> WHERE ...等抽象指令。

虽然网上比较MySQL和PostgreSQL的很多短文通常倾向于声称PostgreSQL在技术上更先进(ACID,JSON支持等等),但这两个问题对我来说似乎是一个严重的缺点。您能否确认这些陈述并可能指出有关这些问题的进一步资源?

谢谢。

以上是关于PostgreSQL索引和复制技术的主要内容,如果未能解决你的问题,请参考以下文章

postgresql 建立索引

PostgreSQL 动态表复制(CREATE TABLE...LIKE)

PostgreSQL逻辑复制之pglogical篇

高效更新 VERY LARGE PostgreSQL 数据库表

postgresqL 的Btree 与gin索引

来了!PostgreSQL 同步流复制原理和代码浅析,请签收