搜索技巧 海洋云增白 开源地图 AI 搜索答案 沙丘魔堡2 压缩机站 自由职业 policy 小团队 颈挂空调 Chumby 个人电脑 极端主义 团队 PostgreSQL AI工具 证券 DirectX DrawingPics 化学 KDE 披萨农场 多动症 植物学 分析化学 Three.js 大会 残疾人学校 初创 QB64 更多

SQLite数据库的校验和问题 (avi.im)

SQLite数据库默认不执行校验和,这意味着磁盘损坏时数据库或应用程序无法识别。即使单个比特位翻转也可能导致严重问题,例如Alice账户余额被清零。虽然SQLite的WAL帧具有校验和,但检测到损坏帧时,它会默默忽略错误帧及其后续帧,甚至不报错。可以使用校验和VFS Shim,但前提是数据库的预留字节值为8。这意味着如果使用了任何其他预留字节的扩展,则无法使用校验和Shim。