Skip to content

Latest commit

 

History

History
198 lines (154 loc) · 5.96 KB

File metadata and controls

198 lines (154 loc) · 5.96 KB

SQLite 测试工具集详细说明

本目录包含了专门用于 SQLite 数据库测试、分析和优化的工具集合。每个工具都是独立的 Go 程序,可以单独运行。

🏗️ 目录结构

test/sqlite/tools/
├── README.md                # 本文件 - 工具集详细说明
├── benchmark/              # 性能基准测试工具
│   └── main.go            # 全面的 SQLite 性能基准测试
├── clear-test/            # 清理方式测试工具
│   └── main.go            # 测试不同表清理方式的性能
├── config-analysis/       # 配置分析工具
│   └── main.go            # 分析和对比不同 SQLite 配置
└── path-compatibility/    # 路径兼容性测试工具
    └── main.go            # 测试不同环境下的路径兼容性

🔧 工具详细说明

1. 性能基准测试 (benchmark)

用途: 全面的 SQLite 性能基准测试,评估不同配置下的性能表现。

运行方式:

cd test/sqlite/tools/benchmark
go run main.go

测试场景:

  • 单线程高吞吐: 1个工作者,测试最大单线程性能
  • 低并发测试: 2个工作者,测试基本并发能力
  • 中等并发测试: 5个工作者,测试中等并发压力

输出内容:

  • 实时性能监控(RPS、耗时、数据一致性)
  • 详细的测试结果表格
  • 性能建议和配置推荐
  • 数据完整性验证结果

适用场景:

  • 评估 SQLite 在当前环境下的性能基线
  • 对比不同配置参数的性能影响
  • 验证 SQLite 在特定工作负载下的表现

2. 配置分析工具 (config-analysis)

用途: 分析和对比不同的 SQLite 配置方案,提供优化建议。

运行方式:

cd test/sqlite/tools/config-analysis
go run main.go

分析内容:

  • 原始配置 vs 优化配置对比
  • 基准测试验证结果
  • 最终配置建议和使用场景
  • 性能提升预期和风险评估

配置对比:

  • 并发工作者数量调整
  • 批次大小优化
  • 缓冲区配置调整
  • 刷新间隔优化

适用场景:

  • 首次部署前的配置选择
  • 性能问题排查和优化
  • 不同环境的配置适配

3. 清理方式测试 (clear-test)

用途: 测试和对比不同的 SQLite 表清理方式的性能和效果。

运行方式:

cd test/sqlite/tools/clear-test
go run main.go

测试方式:

  • DELETE + VACUUM: 传统的删除和压缩方式
  • DROP + CREATE: 重建表的方式
  • 性能对比: 执行时间和资源使用对比
  • 效果验证: 清理完整性验证

输出内容:

  • 两种清理方式的详细性能数据
  • 执行时间对比
  • 磁盘空间回收效果
  • 推荐的清理策略

适用场景:

  • 数据库维护策略选择
  • 清理操作性能优化
  • 磁盘空间管理

4. 路径兼容性测试 (path-compatibility)

用途: 测试在不同环境(本地、Docker)下的路径兼容性和权限问题。

运行方式:

cd test/sqlite/tools/path-compatibility
go run main.go

测试内容:

  • 环境检测: 自动识别运行环境(本地/Docker)
  • 目录权限: 测试目录创建和写入权限
  • 路径解析: 验证相对路径和绝对路径处理
  • 文件操作: 测试数据库文件的创建和访问

检测项目:

  • 工作目录检测和权限验证
  • 数据库文件路径解析
  • 临时文件创建权限
  • 跨平台路径兼容性

适用场景:

  • 部署前的环境兼容性检查
  • 路径相关问题的排查
  • Docker 容器环境适配

🚀 使用建议

首次使用流程

  1. 配置分析: 运行 config-analysis 了解推荐配置
  2. 路径检查: 运行 path-compatibility 确保环境兼容
  3. 性能基准: 运行 benchmark 建立性能基线
  4. 维护策略: 运行 clear-test 选择清理策略

问题排查流程

  1. 环境问题: 优先运行 path-compatibility
  2. 性能问题: 运行 benchmarkconfig-analysis
  3. 维护问题: 运行 clear-test 优化清理策略

定期维护

  • 每月: 运行 benchmark 监控性能趋势
  • 配置变更后: 运行 config-analysis 验证效果
  • 环境迁移时: 运行 path-compatibility 确保兼容

⚠️ 注意事项

运行环境

  • 所有工具都使用独立的 main 包,避免包名冲突
  • 建议在项目根目录或工具目录下运行
  • 确保有足够的磁盘空间用于测试数据库

数据安全

  • 所有工具使用独立的测试数据库文件
  • 测试数据会自动清理,不影响生产数据
  • 数据库文件保存在 ../data/ 目录下

性能影响

  • 基准测试会产生一定的 CPU 和磁盘 I/O 负载
  • 建议在非生产时间运行性能测试
  • 大数据量测试可能需要较长时间

📊 输出文件

数据库文件 (保存在 ../data/ 目录)

  • benchmark.db - 基准测试数据库
  • config_test.db - 配置分析测试数据库
  • clear_test.db - 清理测试数据库
  • path_test.db - 路径测试数据库

日志输出

  • 所有工具都提供详细的控制台输出
  • 包含实时进度、性能指标和结果分析
  • 错误信息包含详细的诊断信息

🔗 相关文档

🤝 扩展开发

添加新工具

  1. tools/ 下创建新目录
  2. 创建独立的 main.go 文件
  3. 使用 main 包避免冲突
  4. 更新本 README 文档

工具开发规范

  • 使用统一的错误处理方式
  • 提供详细的进度和结果输出
  • 包含必要的参数验证
  • 遵循项目的代码风格规范