本目录包含了专门用于 SQLite 数据库测试、分析和优化的工具集合。每个工具都是独立的 Go 程序,可以单独运行。
test/sqlite/tools/
├── README.md # 本文件 - 工具集详细说明
├── benchmark/ # 性能基准测试工具
│ └── main.go # 全面的 SQLite 性能基准测试
├── clear-test/ # 清理方式测试工具
│ └── main.go # 测试不同表清理方式的性能
├── config-analysis/ # 配置分析工具
│ └── main.go # 分析和对比不同 SQLite 配置
└── path-compatibility/ # 路径兼容性测试工具
└── main.go # 测试不同环境下的路径兼容性
用途: 全面的 SQLite 性能基准测试,评估不同配置下的性能表现。
运行方式:
cd test/sqlite/tools/benchmark
go run main.go测试场景:
- 单线程高吞吐: 1个工作者,测试最大单线程性能
- 低并发测试: 2个工作者,测试基本并发能力
- 中等并发测试: 5个工作者,测试中等并发压力
输出内容:
- 实时性能监控(RPS、耗时、数据一致性)
- 详细的测试结果表格
- 性能建议和配置推荐
- 数据完整性验证结果
适用场景:
- 评估 SQLite 在当前环境下的性能基线
- 对比不同配置参数的性能影响
- 验证 SQLite 在特定工作负载下的表现
用途: 分析和对比不同的 SQLite 配置方案,提供优化建议。
运行方式:
cd test/sqlite/tools/config-analysis
go run main.go分析内容:
- 原始配置 vs 优化配置对比
- 基准测试验证结果
- 最终配置建议和使用场景
- 性能提升预期和风险评估
配置对比:
- 并发工作者数量调整
- 批次大小优化
- 缓冲区配置调整
- 刷新间隔优化
适用场景:
- 首次部署前的配置选择
- 性能问题排查和优化
- 不同环境的配置适配
用途: 测试和对比不同的 SQLite 表清理方式的性能和效果。
运行方式:
cd test/sqlite/tools/clear-test
go run main.go测试方式:
- DELETE + VACUUM: 传统的删除和压缩方式
- DROP + CREATE: 重建表的方式
- 性能对比: 执行时间和资源使用对比
- 效果验证: 清理完整性验证
输出内容:
- 两种清理方式的详细性能数据
- 执行时间对比
- 磁盘空间回收效果
- 推荐的清理策略
适用场景:
- 数据库维护策略选择
- 清理操作性能优化
- 磁盘空间管理
用途: 测试在不同环境(本地、Docker)下的路径兼容性和权限问题。
运行方式:
cd test/sqlite/tools/path-compatibility
go run main.go测试内容:
- 环境检测: 自动识别运行环境(本地/Docker)
- 目录权限: 测试目录创建和写入权限
- 路径解析: 验证相对路径和绝对路径处理
- 文件操作: 测试数据库文件的创建和访问
检测项目:
- 工作目录检测和权限验证
- 数据库文件路径解析
- 临时文件创建权限
- 跨平台路径兼容性
适用场景:
- 部署前的环境兼容性检查
- 路径相关问题的排查
- Docker 容器环境适配
- 配置分析: 运行
config-analysis了解推荐配置 - 路径检查: 运行
path-compatibility确保环境兼容 - 性能基准: 运行
benchmark建立性能基线 - 维护策略: 运行
clear-test选择清理策略
- 环境问题: 优先运行
path-compatibility - 性能问题: 运行
benchmark和config-analysis - 维护问题: 运行
clear-test优化清理策略
- 每月: 运行
benchmark监控性能趋势 - 配置变更后: 运行
config-analysis验证效果 - 环境迁移时: 运行
path-compatibility确保兼容
- 所有工具都使用独立的
main包,避免包名冲突 - 建议在项目根目录或工具目录下运行
- 确保有足够的磁盘空间用于测试数据库
- 所有工具使用独立的测试数据库文件
- 测试数据会自动清理,不影响生产数据
- 数据库文件保存在
../data/目录下
- 基准测试会产生一定的 CPU 和磁盘 I/O 负载
- 建议在非生产时间运行性能测试
- 大数据量测试可能需要较长时间
benchmark.db- 基准测试数据库config_test.db- 配置分析测试数据库clear_test.db- 清理测试数据库path_test.db- 路径测试数据库
- 所有工具都提供详细的控制台输出
- 包含实时进度、性能指标和结果分析
- 错误信息包含详细的诊断信息
- ../README.md - SQLite 测试工具集总览
- ../SQLITE_OPTIMIZATION.md - SQLite 优化文档
- ../PERFORMANCE_ANALYSIS.md - 性能分析报告
- ../TEST_REPORT_ANALYSIS.md - 测试报告分析
- ../../CONFIG.md - 统一配置说明
- ../../README-INTEGRATION-TESTS.md - 集成测试文档
- 在
tools/下创建新目录 - 创建独立的
main.go文件 - 使用
main包避免冲突 - 更新本 README 文档
- 使用统一的错误处理方式
- 提供详细的进度和结果输出
- 包含必要的参数验证
- 遵循项目的代码风格规范