2026-04-22 | db · storage | #database #lsm-tree #storage-engine #postgresql #mysql #innodb #clickhouse #columnar
汇总本站数据库内核文章:PostgreSQL / MySQL InnoDB / 列存引擎源码拆解,以及 LSM-Tree 从零实现实验。
2026-06-18 | database · kernel | #mysql #innodb #srv0srv #handler #page-cleaner #purge
InnoDB handler 边界、Master/Purge/IO/Page Cleaner 线程、内存布局与 srv0srv.cc 启动路径。
2026-06-18 | database · kernel | #mysql #innodb #page #row-format #fil-header #rem0rec
FIL 页头、Infimum/Supremum、聚簇/二级索引、ROW_FORMAT 与 rem0rec.h 行头字段。
2026-06-18 | database · kernel | #mysql #innodb #buffer-pool #lru #flush-list #buf0buf
Buffer Pool 实例、LRU 年轻/年老分区、flush 列表、buf_page_get 路径与 read-ahead。
2026-06-18 | database · kernel | #mysql #innodb #redo-log #lsn #mtr #checkpoint #log0log
Redo log buffer、LSN、checkpoint、mtr 记录类型与 innodb_flush_log_at_trx_commit 语义。
2026-06-18 | database · kernel | #mysql #innodb #undo-log #purge #rollback-segment #trx0undo
Undo segment、insert/update undo、purge 线程与长事务 history list 堆积机制。
2026-06-18 | database · kernel | #mysql #innodb #doublewrite #partial-page-write #buf0dblwr
Partial page write、doublewrite buffer 两阶段写与 8.0 doublewrite 文件变体。
2026-06-18 | database · kernel | #mysql #innodb #mvcc #read-view #undo-chain #read0read
DB_TRX_ID、DB_ROLL_PTR、Read View 构造与 RC/RR 可见性判断算法。
2026-06-18 | database · kernel | #mysql #innodb #isolation #phantom #gap-lock #repeatable-read
四种隔离级别、一致性读 vs 当前读、RR 下 gap lock 与幻读语义。
2026-06-18 | database · kernel | #mysql #innodb #lock-manager #gap-lock #next-key-lock #lock0lock
S/X/IS/IX、记录锁/间隙锁/Next-Key Lock、死锁检测与 MDL 分工。
2026-06-18 | database · kernel | #mysql #innodb #crash-recovery #recv #log0recv #checkpoint
recv_recovery 两阶段、checkpoint LSN、未提交事务回滚与启动路径。
2026-06-18 | database · kernel | #mysql #innodb #btree #clustered-index #secondary-index #page-split #btr0btr #mysql-internals
从 btr0btr.cc 拆解 InnoDB B+Tree:聚簇索引即数据、二级索引回表、Page Directory、btr_cur_search_to_nth_level、页分裂 btr_page_split 与合并、索引 latch。对照 PG nbtree。
2026-06-18 | database · kernel | #mysql #innodb #binlog #2pc #xa #group-commit #ordered-commit #trx0trx
从 sql/binlog.cc 与 trx0trx.cc 拆解 binlog 与 InnoDB redo 的 XA 两阶段提交、ordered_commit 组提交、sync_binlog 与 innodb_flush_log_at_trx_commit 组合语义。
2026-06-18 | database · kernel | #mysql #innodb #replication #gtid #semi-sync #mts #binlog
拆解 Dump/IO/SQL 线程、GTID、WRITESET 并行复制、半同步等待点与 Seconds_Behind_Master 陷阱。
2026-06-18 | database · kernel | #mysql #innodb #handler #optimizer #icp #mrr #index-condition-pushdown
从 handler.h 与 ha_innodb.cc 拆解 index_read、ICP、MRR、覆盖索引与 Server 优化器交界。
2026-06-18 | database · kernel | #mysql #innodb #change-buffer #insert-buffer #ahi #ibuf #btr0sea
ibuf0ibuf.cc 延迟二级索引写、btr0sea.cc AHI 维护开销与 8.0 默认关闭 AHI 的工程背景。
2026-06-18 | database · kernel | #mysql #innodb #monitoring #performance-schema #innodb-status #exporter
精读 SHOW ENGINE INNODB STATUS 各段、performance_schema 事务/锁/内存表与 mysqld_exporter 关键指标。
2026-06-18 | database · kernel | #mysql #innodb #troubleshooting #purge #flush-list #deadlock #replication-lag
长事务 undo 膨胀、flush 列表堆积、gap lock 死锁链、主从延迟——现象、机制、排查 SQL 与修复边界。
2026-06-18 | database · kernel | #mysql #innodb #performance #explain-analyze #perf-investigation
从 EXPLAIN ANALYZE、performance_schema、INNODB STATUS 到 iostat/perf 的分层调查方法论。
2026-06-18 | database · kernel | #mysql #innodb #pitr #xtrabackup #backup #gtid #failover
mysqldump 与 xtrabackup 机制差异、binlog PITR、GTID failover 与误删恢复边界。
2026-06-18 | database · kernel | #mysql #innodb #configuration #tuning #pitfalls
innodb_buffer_pool_size、flush 参数组合、lock_wait_timeout、max_connections 等配置的症状与查验。
2026-06-18 | database · kernel | #mysql #innodb #mvcc #undo-log #redo-log #buffer-pool #gap-lock #binlog #replication #btree #mysql-internals
从线程模型到页格式、从 undo log MVCC 到 binlog 两阶段提交——对 MySQL InnoDB 做源码级拆解,并与 PostgreSQL 内核系列逐章对照。20 篇覆盖内核机制与生产运维实战,面向 MySQL DBA、从 PG 转 MySQL 的后端与数据库内核开发者。
2026-06-16 | database · kernel | #postgresql #pg-kernel #mvcc #clog #hint-bit #snapshot #slru #transaction-id #wraparound #procarraylock #innodb #undo-log
在已有 MVCC 文章基础上深入 PG 并发控制的三个基础设施:CLOG 的 SLRU 结构(事务状态位、页面格式、SLRU 淘汰)、hint bit 的写入时机和竞争问题(何时写、谁写、写坏了怎么办)、PG 14 snapshot scalability 优化的具体机制(ProcArrayLock 为什么是瓶颈、xid/xmin 的原子更新如何减少持锁路径),以及事务 ID 回卷(wraparound)的威胁模型。最后与 InnoDB undo log 方案做系统性对比。
2026-04-19 | algorithms | #b-plus-tree #lsm-tree #storage-engine #rocksdb #innodb
数据库存储引擎的核心之争——原地更新还是追加写入?B+tree 与 LSM-tree 代表了两种截然不同的设计哲学,理解它们的取舍,就是理解现代存储系统设计的根基。
2026-04-28 | algorithms | #wal #aries #crash-recovery #checkpoint #database #innodb
崩溃恢复是数据库最被低估的核心能力。
2026-04-30 | algorithms | #mvcc #snapshot-isolation #innodb #postgresql #tidb #concurrency-control
MVCC 是数据库并发控制的事实标准,但每家的实现天差地别。