A Go-based toolbox for benchmarking TPC-C, TPC-H, and CH-benCHmark workloads on TiDB, MySQL, PostgreSQL, and compatible databases.
Go TPC is a command-line benchmarking toolbox written in Go that implements TPC (Transaction Processing Performance Council) workloads. It allows developers and database administrators to run standardized performance tests like TPC-C (transactional), TPC-H (analytical), and CH-benCHmark (hybrid) against databases such as TiDB, MySQL, PostgreSQL, and compatible systems. The tool automates data loading, workload execution, and result validation to provide consistent performance metrics.
Database engineers, performance testers, and developers working with TiDB, MySQL, PostgreSQL, or compatible databases who need to evaluate system performance under standardized workloads.
It offers a unified, open-source tool for running multiple TPC benchmarks across different database systems, eliminating the need for separate benchmarking suites. Its Go implementation ensures portability and ease of use, while support for CSV export and raw SQL execution provides flexibility for custom testing scenarios.
A toolbox to benchmark TPC workloads in Go
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports TiDB, MySQL, PostgreSQL, CockroachDB, AlloyDB, and YugabyteDB through configurable connection parameters, with separate usage examples for each in the README.
Implements TPC-C, TPC-H, and CH-benCHmark workloads, providing standardized testing for OLTP, OLAP, and HTAP scenarios in one tool.
Includes commands for prepare, run, check, and cleanup, automating data loading, benchmark execution, and validation to ensure reproducibility.
Can generate CSV data files for external use and execute raw SQL files, enabling custom testing scenarios beyond standard benchmarks.
Only supports TPC benchmarks, so if you need other standards like TPC-DS or YCSB for different workloads, you must use additional tools.
Lacks graphical interfaces or dashboards for real-time monitoring and result interpretation, requiring users to parse command-line output manually.
Features like --tiflash-replica are specific to TiDB, limiting utility for other databases without equivalent functionality, as noted in the TPC-H examples.