数据库管理
⚠️ 免责声明:本文档由 GLM4.7 自动生成,内容可能存在错误或不完整之处。请以人工书写的官方文档为准。
数据库管理功能提供数据库后端切换、迁移、健康检查等功能。
功能说明
小说助手支持两种数据库后端:
- JSON - JSON 文件存储(默认,兼容旧版本)
- SQLite - SQLite 数据库(推荐,性能更好)
使用方法
命令:切换数据库后端
- 按
Ctrl+Shift+P打开命令面板 - 输入
Andrea Novel Helper: 切换数据库后端 - 选择要使用的后端
- 选择是否立即迁移数据
命令:运行数据库迁移
在 JSON 和 SQLite 之间迁移数据:
- 按
Ctrl+Shift+P打开命令面板 - 输入
Andrea Novel Helper: 运行数据库迁移 - 查看迁移向导
- 确认迁移
命令:查看数据库状态
- 按
Ctrl+Shift+P打开命令面板 - 输入
Andrea Novel Helper: 查看数据库状态 - 查看状态信息
显示:
- 后端类型
- 文件数量
- 路径映射数
- 数据库大小(SQLite)
命令:数据库健康检查
- 按
Ctrl+Shift+P打开命令面板 - 输入
Andrea Novel Helper: 数据库健康检查 - 查看检查结果
命令:优化数据库(仅 SQLite)
- 按
Ctrl+Shift+P打开命令面板 - 输入
Andrea Novel Helper: 优化数据库 - 等待优化完成
命令:比较后端数据
比较 JSON 和 SQLite 后端的数据差异:
- 按
Ctrl+Shift+P打开命令面板 - 输入
Andrea Novel Helper: 比较后端数据 - 查看差异报告
数据库后端对比
JSON 后端
优点:
- 兼容旧版本
- 可读性强
- 易于备份
- 无需额外依赖
缺点:
- 性能较低
- 大文件时速度慢
- 占用空间大
SQLite 后端
优点:
- 性能优异
- 支持大数据量
- 占用空间小
- 支持索引和优化
缺点:
- 需要原生模块支持
- 不易直接查看
迁移流程
迁移向导
迁移向导会显示:
┌─────────────────────────┐
│ 数据库迁移向导 │
├─────────────────────────┤
│ 源后端: JSON │
│ 目标后端: SQLite │
│ │
│ 扫描文件中... │
│ 发现 100 个文件 │
│ │
│ [开始迁移] [取消] │
└─────────────────────────┘迁移内容
迁移包括:
- 文件内容数据
- 路径映射关系
- 时间戳信息
迁移结果
成功后会显示:
- 迁移的文件数量
- 遇到的问题(如有)
配置选项
在 VS Code 设置中搜索 AndreaNovelHelper.database:
| 设置项 | 说明 | 默认值 |
|---|---|---|
backend | 数据库后端类型 | json |
autoMigrate | 自动迁移 | false |
sqlite.enableWAL | 启用 WAL 模式 | true |
sqlite.cacheSize | 缓存大小 | 2560 |
sqlite.enableMmap | 启用内存映射 | true |
SQLite 配置
WAL 模式
Write-Ahead Logging 模式:
- 提高并发性能
- 减少锁定
- 推荐启用
缓存大小
- 单位:KB
- 默认:2560 KB (2.5 MB)
- 增大可提高性能
内存映射
- 启用后使用内存映射 I/O
- 提高大文件读取性能
- 推荐启用
自动迁移
配置自动迁移
设置 autoMigrate 为 true:
- 切换后端时自动迁移
- 无需手动确认
配置变化提示
如果未启用自动迁移:
- 切换后端时会提示
- 可以选择立即迁移或稍后
健康检查
检查项目
健康检查会检查:
- 数据库文件是否存在
- 文件是否可访问
- 数据结构是否完整
- 性能是否正常
检查结果
- ✓ 通过 - 一切正常
- ⚠ 问题 - 发现问题,会详细说明
数据库优化
优化内容
SQLite 优化包括:
- 重建索引
- 清理碎片
- 分析查询计划
- 压缩数据库
优化时机
建议在以下情况下优化:
- 大量操作后
- 性能明显下降时
- 定期维护
常见问题
迁移失败怎么办?
- 查看错误信息
- 确保源数据完整
- 检查磁盘空间
- 尝试重新迁移
切换后端后数据丢失?
迁移后数据应该保持一致:
- 使用"比较后端数据"检查
- 如果有问题,从备份恢复
- 可以来回切换后端
SQLite 性能问题?
- 检查配置(WAL、缓存)
- 运行优化命令
- 考虑调整缓存大小
如何备份数据?
- JSON: 直接复制
.anh-fsdb目录 - SQLite: 复制
tracking.db文件 - 或使用版本控制