本项目为 2023-2026 全国大学生计算机系统能力大赛-数据库管理系统设计赛决赛模拟评测脚本,目前由 db-camp 社区开发和维护。
使用 Rust 编写,基于 tokio 异步模型,提供高性能并发基准测试和友好的诊断输出。
欢迎未来的数据库大赛参赛选手使用和PR。
本项目使用 Rust 编写,请确保已安装 Rust 工具链。
-
安装 Rust (如果尚未安装):
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
-
编译:
cargo build --release
-
运行:
# 初始化数据库(生成 CSV + LOAD 批量导入) ./target/release/tpcc-tester --init --csv-path /path/to/csv -s 1 # 运行一致性检查 ./target/release/tpcc-tester --check -s 1 # 查看各表行数统计 ./target/release/tpcc-tester --stats # 运行并发基准测试 ./target/release/tpcc-tester --benchmark --threads 4 --transactions 100 -s 1 # 运行数据库兼容性诊断 ./target/release/tpcc-tester --diagnose
--init 使用 CSV + LOAD 方式导入数据:
- 生成 TPC-C 标准数据到
--csv-path指定的目录(9 个 CSV 文件) - 通过 rmdb 的
load <file> into <table>命令批量导入
--csv-path 必须是 rmdb 服务端能访问到的路径(tpcc-tester 和 rmdb 需在同一台机器或共享文件系统)。
# 示例:scale_factor=5,CSV 生成到 /tmp/tpcc_data/
./target/release/tpcc-tester --init --csv-path /tmp/tpcc_data -s 5Options:
-s, --scale <N> Scale factor / 仓库数量 [default: 1]
--host <HOST> RMDB 服务地址 [default: 127.0.0.1]
--port <PORT> RMDB 服务端口 [default: 8765]
--init 初始化数据库(建表+加载数据)
--csv-path <PATH> CSV 文件路径 (rmdb 服务端可访问), --init 时必须指定
--check 运行一致性检查
--stats 显示各表行数统计
--benchmark 运行并发基准测试
--threads <N> 并发线程数 [default: 1]
--transactions <N> 每线程事务数 [default: 100]
--rw-ratio <F> 读写比例 0.0-1.0 [default: 1.0]
--txn-probs <F F F F F> 事务概率 [default: 0.45 0.43 0.04 0.04 0.04]
--diagnose 运行数据库兼容性诊断
-v, --verbose 详细日志 (-v=DEBUG, -vv=TRACE)
- 默认 (
INFO): 阶段进度、最终结果、检查通过/失败 -v(DEBUG): 每条 SQL 语句、响应摘要、事务步骤-vv(TRACE): 完整原始响应、参数替换细节
如果你觉得这个项目对你有帮助,请考虑给它一个 Star 支持!