小红花·文摘
  • 首页
  • 广场
  • 排行榜🏆
  • 直播
  • FAQ
Dify.AI

> 本文是写作规划,不是可发布正文。拆解对象:SQLite 3.45.x–3.46.x 的单文件嵌入式行存内核——Pager / B-Tree / VDBE / Rollback Journal·WAL / 锁状态机 / 计划器与恢复;DuckDB 只作选型边界句,不重写 [列存引擎](../columnar-engi…

SQLite 内核 — 系列规划

土法炼钢兴趣小组的博客
土法炼钢兴趣小组的博客 · 2026-07-18T08:24:56Z

本目录记录「SQLite 内核」系列的单机实验。正文机制结论以 SQLite 官方文档(file format、WAL、locking)与 3.45+ 源码为准;实验只补充可观察行为,不以单机数字推断服务器数据库或跨库排名。

SQLite 内核复现说明

土法炼钢兴趣小组的博客
土法炼钢兴趣小组的博客 · 2026-07-18T08:24:56Z

钉住 SQLite 默认的原子提交机制:写前把原页拷进 -journal、DELETE/TRUNCATE/PERSIST 三种提交点如何实现、cache spill 何时把 journal 变成真正的 hot journal;用本机 3.53.2 实测崩溃恢复全过程,WAL 对照留给第 8 篇。

【SQLite 内核】Rollback Journal 模式:写前拷贝与提交点

土法炼钢兴趣小组的博客
土法炼钢兴趣小组的博客 · 2026-07-18T00:00:00Z

用部署形态、写并发、查询形态与持久化需求收束 SQLite / PostgreSQL·InnoDB / DuckDB / RocksDB 选型;给出站内阅读地图、全系列学术谱系与开放问题,标志 SQLite 内核系列完成。

【SQLite 内核】选型与阅读地图:SQLite vs PG vs DuckDB vs RocksDB

土法炼钢兴趣小组的博客
土法炼钢兴趣小组的博客 · 2026-07-18T00:00:00Z

拆解 sqlite3_backup_init/step/finish 与 CLI .backup 如何在不停机的前提下拿到一致快照;用本机 3.53.2 实测 .backup 后备份库 count(*)=3、integrity_check=ok,并实测对比:在写事务打开期间用 cp 拷贝主文件,物理文件已经比头部记录的逻辑页数更大。

【SQLite 内核】在线备份与 sqlite3_backup:与 cp 热拷贝的语义差

土法炼钢兴趣小组的博客
土法炼钢兴趣小组的博客 · 2026-07-18T00:00:00Z

钉住 SQLite WAL 模式如何反转 rollback journal 的读写关系:原始内容留在主文件、新内容追加到 -wal,checkpoint 才把帧搬回主文件;用本机 3.53.2 实测 journal_mode=WAL 切换与 passive/truncate checkpoint 的真实帧数,读放大与 checkpoint 频率的取舍留作开放问题。

【SQLite 内核】WAL 与 checkpoint:追加日志与读写并发

土法炼钢兴趣小组的博客
土法炼钢兴趣小组的博客 · 2026-07-18T00:00:00Z

用进程模型、日志、锁与缓冲池四轴对照 SQLite 与 PostgreSQL / InnoDB:说明嵌入式单文件如何删掉服务器层,以及同名 WAL、隔离、缓存概念为何不能平移运维经验;不写跨库吞吐排名。

【SQLite 内核】与 PG / InnoDB 机制对照:进程、WAL、锁、缓冲池

土法炼钢兴趣小组的博客
土法炼钢兴趣小组的博客 · 2026-07-18T00:00:00Z

拆开 sqlite3_prepare_v2 内部如何把 SQL 文本经词法、语法、名字解析、查询规划变成第 5 篇执行的 bytecode;用本机 3.53.2 的 EXPLAIN QUERY PLAN 钉住三种访问路径形态,并交代 schema cookie 触发 reprepare 的机制,规划算法细节留给第 11 篇。

【SQLite 内核】SQL 编译管线:从文本到 VDBE 程序

土法炼钢兴趣小组的博客
土法炼钢兴趣小组的博客 · 2026-07-18T00:00:00Z

钉住官方 File Locking And Concurrency 文档定义的 UNLOCKED/SHARED/RESERVED/PENDING/EXCLUSIVE 五态锁阶梯:谁能与谁共存、PENDING 如何防写者饿死、Pager 为何只跟踪四态;用本机 3.53.2 真实双连接冲突实验验证,shared cache 与 WAL 差异只点边界,留给第 8、10 篇。

【SQLite 内核】锁状态与 shared cache:五态锁阶梯与 writer starvation

土法炼钢兴趣小组的博客
土法炼钢兴趣小组的博客 · 2026-07-18T00:00:00Z

钉住 EXPLAIN QUERY PLAN 的 SEARCH/SCAN 判定、ANALYZE 写入 sqlite_stat1/stat4 的具体语义,以及没有统计时 SQLite 用什么默认猜测(表大小猜一百万行、重复度猜 10);对照官方 N3 join 排序算法与 PG 式穷举代价优化器的复杂度边界,本机 3.53.2 实测覆盖两条 EQP 路径。

【SQLite 内核】查询计划器与统计:没有 ANALYZE 时的启发式与代价估计边界

土法炼钢兴趣小组的博客
土法炼钢兴趣小组的博客 · 2026-07-18T00:00:00Z

拆解 BEGIN DEFERRED/IMMEDIATE/EXCLUSIVE 三种模式的取锁时机差异,对照 Berenson et al. SIGMOD 1995 的隔离词汇与官方 Isolation In SQLite 文档;说明单写者约束下 WAL 快照为何天然回避 write skew,并用本机 3.53.2 实测三种 BEGIN 均可提交。

【SQLite 内核】事务与隔离:DEFERRED/IMMEDIATE/EXCLUSIVE 与单写者快照

土法炼钢兴趣小组的博客
土法炼钢兴趣小组的博客 · 2026-07-18T00:00:00Z

钉住 ATTACH DATABASE 的命名空间规则、super-journal 如何让跨文件事务在 rollback journal 模式下保持原子,以及官方文档明确写明的一条反常识边界:main 库或任一 attached 库切到 WAL 后,跨库事务只在单文件粒度原子,崩溃中间态可能只改了一部分文件;本机 3.53.2 实测跨库 JOIN、跨库事务提交与 DETACH 锁冲突。

【SQLite 内核】ATTACH / 多库边界:跨库事务的原子性在 WAL 下会退化

土法炼钢兴趣小组的博客
土法炼钢兴趣小组的博客 · 2026-07-18T00:00:00Z

拆解 PRAGMA integrity_check/quick_check 的检查范围与复杂度差异,对照官方 How To Corrupt Your Database Files 列出的四类常见损坏来源;用本机 3.53.2 实测一个刻意损坏的数据库,比较 .recover 与 .dump 在数据丢失时的真实行为差异,钉住“修复=尽力抢救,不是万能恢复”的边界。

【SQLite 内核】完整性检查与损坏恢复:integrity_check 与修复边界

土法炼钢兴趣小组的博客
土法炼钢兴趣小组的博客 · 2026-07-18T00:00:00Z

钉住 covering index 消除的具体开销:第 4 篇 index b-tree 只存 key+rowid,命中后仍要回表这一次二次查找;用本机 3.53.2 实测 SELECT 列是否全部落在索引内如何改变 EQP 输出,并区分语句级自动索引与 sqlite_autoindex_* 约束索引这两个常被混淆的概念。

【SQLite 内核】索引与 covering scan:什么时候真的省掉了第二次查找

土法炼钢兴趣小组的博客
土法炼钢兴趣小组的博客 · 2026-07-18T00:00:00Z

拆解 Pager 作为 B-Tree 与操作系统文件之间的契约层:page cache 命中/未命中路径、脏页生命周期与提交前的可回滚保证,并与 PG shared_buffers、InnoDB Buffer Pool 的跨进程共享模型对照。

【SQLite 内核】Pager 与 Page Cache

土法炼钢兴趣小组的博客
土法炼钢兴趣小组的博客 · 2026-07-17T00:00:00Z

钉住 SQLite table b-tree 与 index b-tree 的字节布局差异、cell pointer array 如何做到逻辑有序物理可乱序、overflow 阈值与 balance() 分裂/合并触发条件;源码以 btree.c 函数签名为准,学术锚点是 Bayer & McCreight 1972。

【SQLite 内核】B-Tree 遍历与分裂:表 B-Tree、索引 B-Tree 与 cell 布局

土法炼钢兴趣小组的博客
土法炼钢兴趣小组的博客 · 2026-07-17T00:00:00Z

拆解 SQLite 单文件格式:100 字节 database header 与 B-Tree 页面头的逐字段布局,用本机 3.53.2 CLI 实测 hexdump 核对 magic、page size、页类型标志,并钉住 file format 官方规范与 Bayer/McCreight 谱系。

【SQLite 内核】单文件格式与页面头

土法炼钢兴趣小组的博客
土法炼钢兴趣小组的博客 · 2026-07-17T00:00:00Z

定位单文件嵌入式行存在服务器行存与 LSM 嵌入 KV 之间的生态位;钉住 SQLite 架构约束、站内分工与 17 篇阅读路线,并以 Bayer/McCreight、官方 file format、PVLDB 2022 为学术锚点。

【SQLite 内核】嵌入式行存全景:单文件、单写者、零 IPC

土法炼钢兴趣小组的博客
土法炼钢兴趣小组的博客 · 2026-07-17T00:00:00Z

钉住 SQLite 把 SQL 编译成 bytecode、由 sqlite3_step 驱动虚拟机执行的路径:指令格式、寄存器、B-Tree 游标与 ResultRow;用本机 3.53.2 EXPLAIN 走通一次点查,编译管线细节留给第 6 篇。

【SQLite 内核】VDBE 字节码执行:prepare、step 与寄存器机

土法炼钢兴趣小组的博客
土法炼钢兴趣小组的博客 · 2026-07-17T00:00:00Z

本文探讨了FoundationDB的存储引擎,重点比较了Redwood与SQLite派生引擎的区别。Redwood通过多版本B-Tree和前缀压缩技术,提高了吞吐量并降低了写放大。文章指出,存储引擎的选择不会影响分布式事务的隔离性,且引擎切换需谨慎。整体而言,Redwood在设计上弥补了SQLite引擎的不足,适应了更复杂的工作负载需求。

【FoundationDB 内核】SSD Engine 与 Redwood:从 SQLite 派生到版本化 B-Tree

土法炼钢兴趣小组的博客
土法炼钢兴趣小组的博客 · 2026-07-17T00:00:00Z
  • <<
  • <
  • 1 (current)
  • 2
  • 3
  • >
  • >>
👤 个人中心
在公众号发送验证码完成验证
登录验证
在本设备完成一次验证即可继续使用

完成下面两步后,将自动完成登录并继续当前操作。

1 关注公众号
小红花技术领袖公众号二维码
小红花技术领袖
如果当前 App 无法识别二维码,请在微信搜索并关注该公众号
2 发送验证码
在公众号对话中发送下面 4 位验证码
友情链接: MOGE.AI 九胧科技 模力方舟 Gitee AI 菜鸟教程 Remio.AI DeekSeek连连 53AI 神龙海外代理IP IPIPGO全球代理IP 东波哥的博客 匡优考试在线考试系统 开源服务指南 蓝莺IM Solo 独立开发者社区 AI酷站导航 极客Fun 我爱水煮鱼 周报生成器 He3.app 简单简历 白鲸出海 T沙龙 职友集 TechParty 蟒周刊 Best AI Music Generator

小红花技术领袖俱乐部
小红花·文摘:汇聚分发优质内容
小红花技术领袖俱乐部
Copyright © 2021-
粤ICP备2022094092号-1
公众号 小红花技术领袖俱乐部公众号二维码
视频号 小红花技术领袖俱乐部视频号二维码