小红花·文摘
  • 首页
  • AI Tokens🪙
  • 排行榜🏆
  • 直播
  • FAQ
PowerToys v0.101.2432.0 新增 4 个小功能,可以预览 SQLite 了

PowerToys v0.101.2432.0 更新了四个小功能:速览可预览 SQLite 数据库内容;键盘管理器支持单独映射组合键中的按键;命令面板显示更详细信息;屏幕标尺新增设备无关像素单位。

PowerToys v0.101.2432.0 新增 4 个小功能,可以预览 SQLite 了

小众软件 小众软件 · 2026-09-03T04:59:44Z

本文介绍WordPress SQLite Docker镜像的更新,基于WordPress 7.0.2、PHP 8.5和SQLite Integration 3.0 RC。新增Rust解析扩展、多架构构建、旧卷升级修复和诊断页面,并处理ID键兼容问题。适合单机、读多写少场景,需注意插件兼容、备份和SQLite版本安全。

WordPress SQLite Docker 镜像封装细节:两年后的升级

苏洋博客 苏洋博客 · 2026-08-08T09:35:00Z

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

SQLite 内核 — 系列规划

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

本文档介绍SQLite内核系列实验的复现方法,涵盖环境要求(Linux/WSL2、SQLite 3.45+)及多个脚本实验,如页头解析、查询计划、回滚日志、WAL检查点、锁冲突、事务模式、覆盖索引、跨库操作、完整性检查和备份。强调以官方文档和源码为准,实验需记录版本、命令和输出,性能数据引用既有测试。

SQLite 内核复现说明

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

SQLite的SQL编译管线分为Tokenizer、Parser、名字解析和代码生成四段,其中查询规划与代码生成无独立边界。schema cookie变化时,sqlite3_step会根据语句是否由prepare_v2创建自动重编译或返回SQLITE_SCHEMA。实测显示INT与INTEGER PRIMARY KEY对同一查询产生不同访问路径,规划算法采用NN/N3启发式,不保证全局最优。

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

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

本文介绍SQLite 3.0的锁状态机,五态为UNLOCKED、SHARED、RESERVED、PENDING、EXCLUSIVE。RESERVED允许新读者,PENDING拒绝新读者以防写者饿死。Pager仅跟踪四态,PENDING是瞬时状态。实测验证RESERVED唯一性,读写可共存。shared cache已过时,WAL模式另用独立锁机制。

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

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

本文介绍SQLite查询计划器:通过EXPLAIN QUERY PLAN区分SEARCH/SCAN访问路径;ANALYZE写入sqlite_stat1统计信息,无统计时用默认猜测(表百万行、索引重复度10);连接顺序采用N3启发式算法(O(KN)),放弃穷举最优,但存在star-query贪心短板。文章强调SQLite计划器与PostgreSQL CBO复杂度目标不同,统计不自动更新,EQP格式仅供调试。

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

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

本文探讨SQLite覆盖索引与自动索引机制。覆盖索引可省去回表二次查找,是否覆盖取决于SELECT列是否全在索引中,与有无索引无关。自动索引是语句级临时索引,默认开启,与持久索引sqlite_autoindex_*无关。WITHOUT ROWID表主键查找天然无需回表。实测验证了这些判定差异。

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

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

本文对比SQLite与PostgreSQL/InnoDB在进程模型、日志、锁和缓冲池四方面的机制差异。SQLite采用嵌入式库、单文件、文件级单写者,无服务器进程和共享缓冲池;PG/InnoDB则有多进程/线程、网络协议和共享缓存。文中强调WAL、snapshot等术语在不同系统中含义不同,需注意区分,并指出SQLite的写串行化与服务器行锁机制本质不同。

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

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

本文介绍SQLite的ATTACH DATABASE功能,允许一个连接同时操作多个数据库文件。跨库事务在rollback journal模式下通过super-journal机制保证原子性,但WAL模式下会退化为各文件独立原子。锁按文件独立跟踪,跨库写需在所有文件上获取EXCLUSIVE锁。事务进行中的库无法DETACH。同名表省略前缀时取最早挂载的库。

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

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

本文介绍SQLite完整性检查与损坏恢复机制。integrity_check检查B-Tree结构自洽性,quick_check跳过UNIQUE和索引一致性检查以提升速度。实测显示,数据字节被翻转后两者均报错,但.recover和.dump只能恢复表结构,无法找回已损坏数据。SQLite对正常崩溃有自动恢复能力,但对绕开正常路径的操作无防御,需靠备份和检查工具主动防护。

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

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

本文介绍SQLite事务的三种BEGIN模式:DEFERRED推迟取锁,IMMEDIATE立即获取RESERVED锁,EXCLUSIVE在WAL模式下与IMMEDIATE等价。SQLite通过写串行化实现SERIALIZABLE隔离,单写者模型天然避免write skew异象。WAL模式下快照过期会返回SQLITE_BUSY_SNAPSHOT,需回滚重试。COMMIT落盘时机由日志模式决定。

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

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

本文是SQLite内核系列第17篇(末篇),总结选型决策树:根据网络多写者、SQL需求、分析负载等条件,选择PostgreSQL/InnoDB、DuckDB、RocksDB或SQLite。SQLite适合嵌入式行存OLTP,单文件、零IPC、单写者。文章还提供站内阅读地图、学术谱系(如Bayer & McCreight 1972)及开放问题,如单写者权衡、WAL checkpoint策略等。

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

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

本文介绍SQLite在线备份机制。sqlite3_backup API通过pager读取页面,可分批执行并释放锁,生成一致快照;而cp热拷贝依赖内部写入时序,可能产生损坏。WAL模式下需连同-wal文件一起备份。实测验证了cp在写事务中拷贝会得到物理大小与逻辑页数不一致的副本。备份后应运行integrity_check确认完整性。

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

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

本文介绍SQLite的rollback journal机制,即写前拷贝的原子提交方式。它通过五级锁状态机管理写事务,将原始页备份到-journal文件,提交点通过删除、截断或清零journal头部实现。只有发生cache spill时才会产生hot journal,崩溃后下次打开数据库时自动恢复。与WAL模式不同,rollback journal写会短暂阻塞读。

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

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

SQLite WAL模式将改动追加至-wal文件,主文件不变,实现读写不互阻。checkpoint为必要操作,PASSIVE不缩文件,仅TRUNCATE截断至零。实测显示PASSIVE后主文件增大而WAL不变,TRUNCATE后归零。SQLite WAL与PostgreSQL WAL同名但机制不同,前者帧参与读路径,后者仅恢复用。权衡读放大与checkpoint频率仍为开放问题。

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

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

SQLite的B-Tree模块分为table b-tree(64位整数key,数据仅存叶子,近似B+Tree)和index b-tree(任意key,不存数据)。页内通过cell pointer array实现逻辑有序与物理位置解耦,插入时无需搬移已有内容。overflow阈值保证索引树最小扇出为4。查找从根页二分至叶子,分裂合并由balance()统一触发,分派至balance_deeper、balance_nonroot或balance_quick。

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

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

本文介绍SQLite的VDBE字节码执行引擎。sqlite3_prepare_v2将SQL编译为字节码程序,sqlite3_step在虚拟机上执行该程序。通过EXPLAIN分析点查SELECT name FROM t WHERE id=1,展示Transaction→OpenRead→SeekRowid→Column→ResultRow的执行流程。VDBE通过游标调用B-Tree,不直接读文件。强调opcode细节非稳定API,升级后需重新验证。

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

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

作者分享了使用SQLite作为Django网站数据库的经验,启用WAL模式和运行ANALYZE显著提高了查询性能。清理数据库时建议分批操作以避免超时。虽然当前Django ORM查询性能尚可,但未来可能考虑使用Postgres。备份方面,作者尝试了restic和Litestream,后者支持增量备份。整体上,作者对SQLite的使用体验积极,期待未来继续学习。

学习一些关于运行SQLite的知识

Julia Evans Julia Evans · 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 九胧科技 1tok 菜鸟教程 Remio.AI DeekSeek连连 53AI 神龙海外代理IP IPIPGO全球代理IP 东波哥的博客 匡优考试在线考试系统 开源服务指南 蓝莺IM Solo 独立开发者社区 AI酷站导航 极客Fun 我爱水煮鱼 周报生成器 He3.app 简单简历 白鲸出海 T沙龙 职友集 TechParty 蟒周刊 Best AI Music Generator 模力方舟 Gitee AI

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