数据库检查 —— AnkiDroid 的一键修复工具
什么时候用"检查数据库"
如果你遇到以下任何一种情况,先跑一次"检查数据库":
- 牌组列表显示异常(计数不对、牌组消失)
- 某张卡片渲染不出内容(模板没改也出错)
- 删除了笔记但卡片好像还在
- 媒体文件丢失(显示占位符)
- 标签删不掉
- 导入 / 导出异常
"检查数据库"是 AnkiDroid 最常被忽略但最实用的一键修复工具。
入口在哪
牌组列表 → 活动栏更多菜单(⋮)→ 检查数据库(Check Database)。
它做了什么
点击后 AnkiDroid 会:
- 验证 SQLite 数据库完整性:检查数据文件有没有损坏
- 修复笔记与卡片的关联:确保每条笔记和它生成的所有卡片正确关联
- 清理空卡片:如果某张卡片的正反面都是空的(笔记被删了或模板坏了),移除这张卡
- 清理孤立标签:移除任何没有关联笔记的标签
- 清理孤立媒体文件:移除没有被任何笔记引用的图片/音频文件
- 重建统计索引:修复损坏的统计数据缓存
整个过程几秒到几十秒,完成后会显示结果报告(修复了多少个问题)。
安全吗
非常安全。"检查数据库"不会删除有效数据,只会清理确定没有用的东西。它的设计是修复比破坏保守——宁可漏修也不会误删好数据。
执行前不需要手动导出备份(虽然重要操作前还是建议导一下)。
和"检查媒体"的区别
活动栏更多菜单里还有一个单独的检查媒体按钮:
| 对比项 | 检查数据库 | 检查媒体 |
|---|---|---|
| 范围 | 整个 collection | 仅媒体文件(图片/音频) |
| 修复 | 数据库结构 + 孤立标签 + 空卡片 + 孤立媒体 | 只扫孤立媒体 |
| 影响 | 较广 | 较窄 |
建议:遇到数据异常先跑检查数据库(它会顺带做检查媒体的事),单独媒体问题才跑检查媒体。
空卡片手动移除
除了检查数据库自动清理空卡片外,AnkiDroid 活动栏更多菜单里还有一个空卡片选项——这个按钮会尝试更激进地移除生成后变成空卡片的条目。但通常用检查数据库就够了,除非你专门知道某批卡片有问题。
建议频率
- 日常:不需要特意跑
- 出问题时:第一时间跑
- 批量操作后(批量删卡、改笔记类型、大调整后):建议跑一次,保证数据干净