Tech H2
梳理 H2 的 JDBC URL、内存/文件存储、embedded/server 模式、MySQL 兼容和 Spring Boot 控制台。
梳理 H2 的 JDBC URL、内存/文件存储、embedded/server 模式、MySQL 兼容和 Spring Boot 控制台。
用 DATETIME、TIMESTAMP、时区层级和 UNIX 时间戳的转换链路,复盘 MySQL 时间类型的坑。
从阻塞 read、多线程、非阻塞轮询、select/poll/epoll 到 AIO,逐层拆解 IO 模型演进。
围绕 ACID,系统整理 InnoDB 的 undo、redo、checkpoint、MVCC、锁与事务隔离实现。
解释 Buffer Pool 如何缓存 InnoDB 页、维护 free/LRU/flush 链表,并与 OS page cache 区分开。
从页继续往上看 InnoDB 如何用区、段、碎片区和表空间组织一张表的物理存储。
把页内目录的思想推广到页间,解释 InnoDB 为什么用 B+ 树、聚簇索引、二级索引和回表。
从行记录进入 16KB 页,解释页内链表、页目录、slot 二分和页间链表如何一起支撑查询。
拆开 InnoDB COMPACT 行格式,看变长列长度、NULL 位图、记录头和隐藏列如何一起组成一行。
用一条从行到页、索引、表空间、Buffer Pool、事务的主线,概览 InnoDB 的存储设计。