数据库
文章平均质量分 77
quintin-lee
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Postgres 内核:从入门到“入土” (四) —— MVCC:时光倒流,我能看到你前任的样子
PostgreSQL的MVCC实现堪称"时光机":通过保留旧数据版本实现读写并行。其核心机制是利用xmin/xmax标记行的生死状态,UPDATE操作实质是创建新版本而非原地修改。查询时结合事务快照判断版本可见性,通过Hint Bits优化性能。但这种"盖新房不拆旧房"的设计会导致存储膨胀,依赖Vacuum清理死亡元组。源码中的HeapTupleSatisfiesMVCC函数实现了精妙的版本可见性判断逻辑,展现了MVCC在并发控制与存储效率间的精妙平衡。原创 2026-04-25 19:35:37 · 338 阅读 · 0 评论 -
Postgres 内核:从入门到“入土” (二) —— Postmaster:那个整天蹲在大门口的保镖
摘要:PostgreSQL的核心进程Postmaster是数据库系统的"主心骨",负责管理所有后台进程和客户端连接。作为多进程架构的核心,Postmaster通过fork()创建子进程处理客户端请求,确保进程隔离性,防止单个连接崩溃影响整个系统。它还管理着日志、检查点、WAL写入等关键后台进程,并通过信号机制实现进程间通信。文章剖析了Postmaster在Unix和Windows上的实现差异,以及其主循环的工作机制,展现了PostgreSQL"宁可停产也要保证数据安全"原创 2026-03-31 07:56:04 · 371 阅读 · 0 评论 -
Postgres 内核:从入门到“入土” (一) —— MemoryContext:数据库里的“分赃”艺术
本文深入解析了PostgreSQL数据库内核的内存管理机制。核心采用MemoryContext(内存上下文)的树状结构实现批量内存管理,通过AllocSet分配策略将内存划分为大块(Block)和小块(Chunk),并建立回收机制。相比直接使用malloc/free,这种设计通过"餐巾纸策略"实现查询级内存自动回收,避免了频繁手动释放。文章详细剖析了palloc实现原理、内存组织结构以及C语言实现的OOP多态机制,并警示开发者注意CurrentMemoryContext切换以避免OOM。原创 2026-03-30 07:58:25 · 423 阅读 · 0 评论 -
Postgres内核: 从入门到“入土“(序言) -----程序员的终极浪漫与源码生存指南
有人问:为什么不去读 MySQL?或者更时髦的各种分布式数据库?PostgreSQL 是 C 语言编写的艺术品。它的代码风格严谨得像个老学究,注释多到让你怀疑这是不是在写小说。它没有那种为了炫技而写的晦涩逻辑,更多的是一种工程上的优雅。读 PG 源码,你不仅是在学数据库,你是在学如何构建一个能跑几十年的大型系统。原创 2026-03-23 20:02:46 · 310 阅读 · 0 评论 -
PostgreSQL的内存结构
PostgreSQL的内存结构对于数据库的性能和稳定性至关重要。它主要分为两大类:本地内存区域(Local memory area)和共享内存区域(Shared memory area)。原创 2024-11-24 13:36:37 · 813 阅读 · 0 评论 -
PostgreSQL中的内存上下文管理
在数据库的世界里,内存管理是性能优化的关键。PostgreSQL,作为一个高级的开源对象关系数据库系统,拥有一套精细的内存上下文管理系统,它不仅提高了数据库的性能,还增强了系统的稳定性。本文将深入探讨PostgreSQL中的内存上下文是如何工作的,以及它为什么如此重要。原创 2024-11-24 13:33:50 · 843 阅读 · 0 评论 -
深入理解 PostgreSQL 的 MVCC:确保数据一致性的幕后技术
MVCC 是一种通过维护数据的多个版本来实现并发控制的机制。在 MVCC 系统中,数据库可以同时支持多个事务进行读写操作,而不会互相阻塞。每个事务在执行时看到的是某一时间点的数据快照,而不会被其他事务的操作所干扰。这种机制的核心思想是“数据不锁定,操作创建快照”。MVCC 是 PostgreSQL 处理并发控制的核心技术,通过维护多个数据版本和使用快照隔离,确保了数据的一致性和系统的高并发性能。它允许读写操作并行进行,而无需加锁,大大提高了系统的效率。原创 2024-08-06 10:26:47 · 1125 阅读 · 0 评论 -
深入了解 PostgreSQL 的优化器:提升查询性能的幕后英雄
查询优化器是数据库管理系统的一个组件,负责决定 SQL 查询的最佳执行计划。一个查询可以有多种执行方式,而优化器的任务是选择其中代价最小的一个执行计划。执行计划的代价通常取决于执行该查询所需的资源(如 CPU、I/O、内存等)和时间。PostgreSQL 的优化器在查询性能的优化中起到了关键作用。通过理解其工作机制和常见的优化技术,数据库管理员和开发者可以更好地利用优化器的能力,提升数据库系统的性能。同时,合理的数据库设计、索引使用、统计信息维护,以及查询优化实践,也是确保优化器发挥最大作用的重要因素。原创 2024-08-06 10:20:38 · 1077 阅读 · 0 评论 -
深入浅出Presto:PB级OLAP引擎
深入浅出Presto:PB级OLAP引擎转载 2021-06-28 17:57:11 · 243 阅读 · 0 评论
分享