
PostgreSQL
文章平均质量分 90
PostgreSQL
01Byte空间
做过开发,创过业,踩过坑。从Java后台开发,PL/SQL开发,Pro*C开发,到shell脚本,再到兼职开发的MySQL DBA。
为人友善诚恳,工作踏实,吃苦耐劳,富有朝气,激情,以及团队合作意识。
专注后端技术:Java、Shell、Socket、MySQL、Oracle、Linux、中间件、分布式、微服务。偶尔扯扯淡、分享技术干货。
https://github.com/zhouxx1055
https://zhouxx.blog.csdn.net/
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
科普文:软件架构数据库系列之【解读:Why Uber Engineering Switched from Postgres to MySQL】
Uber技术团队从PostgreSQL迁移到MySQL的技术分析显示:PostgreSQL在写入效率(不可变行设计导致写入放大)、复制带宽需求(WAL日志冗长)和版本升级(需长时间停机)方面存在明显不足。相比之下,MySQL的二级索引指向主键设计、逻辑复制机制和线程每连接模型在写入性能、复制效率和并发处理上更具优势。最终Uber将大部分数据库迁移至基于MySQL的Schemaless层,仅保留少量PostgreSQL实例。这一决策显著提升了系统的写入效率、复制可靠性和运维便利性。原创 2025-07-28 00:15:00 · 753 阅读 · 0 评论 -
科普文:软件架构数据库系列之【解读:The Part of PostgreSQL We Hate the Most】
PostgreSQL的MVCC实现存在严重设计缺陷:采用追加式存储导致存储膨胀,每次更新都复制整行数据而非增量变更;版本链采用旧到新顺序需要遍历长链;自动清理机制效率低下,常因长事务阻塞形成恶性循环。这些问题导致I/O开销增加、性能下降和云成本上升,尤其在高写入负载下表现更差。相比Oracle、MySQL等使用增量存储的数据库,PostgreSQL的MVCC设计在二级索引维护和存储空间回收方面存在明显劣势。尽管存在这些缺陷,PostgreSQL仍是功能丰富的可靠数据库,但需精细调优来缓解问题。原创 2025-07-28 00:15:00 · 640 阅读 · 0 评论 -
科普文:软件架构数据库系列之【我们最讨厌的 PostgreSQL 部分:The Part of PostgreSQL We Hate the Most】
摘要: 卡耐基梅隆大学的研究团队在OtterTune博客中指出,PostgreSQL的多版本并发控制(MVCC)实现存在严重缺陷,是其最糟糕的设计部分。PostgreSQL采用追加式存储方式,每次更新都复制整行数据而非仅存储变更部分,导致存储膨胀和性能下降。此外,其版本链采用旧到新(O2N)顺序,需要遍历长链或维护冗余索引条目,而自动清理机制(autovacuum)难以有效回收空间,常因长事务阻塞形成恶性循环。相比Oracle、MySQL等使用增量存储的数据库,PostgreSQL的MVCC设计增加了I/O原创 2025-07-28 00:15:00 · 1733 阅读 · 0 评论 -
科普文:软件架构数据库系列之【为什么 Uber 从 Postgres 迁移到 MySQL:Why Uber Engineering Switched from Postgres to MySQL】
Uber工程团队2016年从PostgreSQL迁移到MySQL的核心原因包括:PostgreSQL在写入操作、数据复制和版本升级方面存在显著瓶颈。其基于CTID指针的存储架构导致写入放大效应,次要索引更新产生冗余磁盘操作;物理复制机制造成跨数据中心带宽压力;MVCC实现限制副本读取性能;版本升级需停机数小时。相比之下,MySQL的InnoDB引擎通过主键引用次要索引,显著减少写入放大;逻辑复制更节省带宽;连接线程模型优于PostgreSQL的进程模型;支持在线版本升级。这些特性使MySQL更适合Uber快原创 2025-07-28 00:15:00 · 778 阅读 · 0 评论 -
科普文:软件架构数据库系列之【DeepSeek全方位对比PostgreSQL 和 MySQL】
以下是 PostgreSQL(Postgres)与 MySQL 的全方位对比,涵盖 定位、功能特性、性能、适用场景、生态工具 等关键维度,帮助根据业务需求选择合适的数据库。一、基础定位许可证 LicenseMySQL 社区版采用 GPL 许可证。Postgres 发布在 PostgreSQL 许可下,是一种类似于 BSD 或 MIT 的自由开源许可。即便 MySQL 采用了 GPL,仍有人担心 MySQL 归 Oracle 所有,这也是为什么 MariaDB 从 MySQL 分叉出来。原创 2025-07-27 12:45:40 · 1219 阅读 · 0 评论 -
科普文:软件架构数据库系列之【PostgreSQL中的 WAL文件与LSN 】
PostgreSQL的第一个 WAL 段文件是 00000001 0000000 0000000 01。如果第一个已被写入 的XLOG 记录填满,则将提供第二个 00000001 00000000 000000 02。后继文件按升序顺序使用,00000001 00000000 000000 FF填满后,将提供下一个 00000001 00000001 000000 00。这样,每当最后 2 位结转时,中间 8 位数字就会增加 1。原创 2024-09-07 22:14:54 · 959 阅读 · 0 评论 -
科普文:软件架构数据库系列之【PostgreSQL查看表膨胀】
多版本并发控制机制(MVCC)的原理在于,当它需要更改某块数据的时候,它不会直接去更改,而是会创建这份数据的新版本,在新版本进行更改,所以会存储多份版本,每个事务能看见哪一份版本的数据,由事务隔离级别控制。MVCC引入了一个问题,如何消除老旧的、没有使用的无用数据(版本),目前主流上有3种处理实现方式:来看看各种数据库的解决方式:第一种:以Oracle为代表的,把旧版本数据放入UNDO,新数据放入REDO,然后更改数据。PostgreSQL查看表膨胀1、查看表膨胀(对所有表进行膨胀率排序),取前10个原创 2024-09-07 22:11:18 · 738 阅读 · 0 评论 -
科普文:软件架构数据库系列之【PostgreSQL · 源码分析 · PG中的无锁算法和原子操作应用一则】
近年来随着服务器上CPU核数的不断增加,无锁算法(Lock Free)越来越广泛的被应用于高并发的系统中。PostgreSQL 做为世界上最高级开源数据库也在9.5时引入了无锁算法。本文先介绍了无锁算法和原子操作在PostgreSQL中的具体实现, 再通过一个Patch来看一下在PostgreSQL中是如何利用它来解决实际的高并发问题的。PgSQL · 源码分析 · PG中的无锁算法和原子操作应用一则 · 数据库内核月报 · 看云。原创 2024-09-07 21:54:04 · 816 阅读 · 0 评论