Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. MySQL
  3. TPCC-MySQL

TPCC-MySQL

C

A port of the TPC-C benchmark for MySQL to measure database performance under OLTP workloads.

GitHubGitHub
487 stars183 forks0 contributors

What is TPCC-MySQL?

tpcc-mysql is an open-source implementation of the TPC-C benchmark specifically adapted for MySQL databases. It simulates a complex online transaction processing (OLTP) workload to measure database performance, scalability, and response times under realistic conditions. The tool helps database administrators and developers evaluate how their MySQL configurations handle concurrent transactions.

Target Audience

Database administrators, performance engineers, and developers working with MySQL who need to benchmark database performance, compare hardware/configuration changes, or validate scalability for OLTP applications.

Value Proposition

It provides a standardized, industry-recognized benchmark specifically ported for MySQL, offering reproducible performance measurements and detailed transaction metrics that help identify database bottlenecks and optimization opportunities.

Overview

tpcc-mysql is an open-source port of the TPC-C benchmark specifically for MySQL databases. It simulates a wholesale parts supplier's online transaction processing (OLTP) workload to evaluate database performance, scalability, and consistency under realistic conditions.

Key Features

  • TPC-C Compliance — Implements the standard TPC-C benchmark specification for MySQL environments
  • Parallel Data Loading — Supports loading test data in parallel to speed up benchmark setup
  • Configurable Workload — Allows adjustment of warehouses, connections, warmup time, and benchmark duration
  • Detailed Metrics — Reports throughput, 95th/99th percentile response times, and maximum response times per interval
  • Transaction Mix — Simulates multiple transaction types (New Orders, Payments, etc.) as per TPC-C specification

Philosophy

The project follows the TPC-C benchmark philosophy of providing a standardized, repeatable method for evaluating database performance under realistic OLTP workloads, enabling fair comparisons between different MySQL configurations.

Use Cases

Best For

  • Benchmarking MySQL performance before and after configuration changes
  • Comparing different MySQL hardware or storage engine performance
  • Testing database scalability under increasing concurrent user loads
  • Validating OLTP application database requirements
  • Measuring transaction response times under realistic workloads
  • Educational purposes for learning about database performance characteristics

Not Ideal For

  • Teams benchmarking non-MySQL databases like PostgreSQL or MongoDB
  • Projects needing quick, simple performance checks without complex TPC-C setup
  • Users requiring graphical interfaces or real-time visual reports during benchmarks
  • Applications focused on analytical or read-heavy workloads rather than OLTP

Pros & Cons

Pros

Industry-Standard Benchmark

Implements the TPC-C specification for MySQL, ensuring reproducible and comparable performance measurements across tests, as outlined in the README's compliance focus.

Parallel Data Loading

Supports loading test data in parallel via scripts like load.sh, significantly speeding up setup for large warehouse counts, as mentioned in the loading steps.

Flexible Workload Configuration

Allows customization of warehouses, connections, warmup time, and duration through command-line options, enabling tailored testing for different scenarios.

Detailed Transaction Metrics

Reports throughput, 95th/99th percentile response times, and max response times per interval, providing granular insights into database performance under load.

Cons

MySQL-Only Dependency

Exclusively designed for MySQL databases, limiting its use for benchmarking other database systems, which restricts cross-platform comparisons.

Manual Setup Complexity

Requires building binaries from source, setting up MySQL databases, and running multiple SQL and command-line steps, making it prone to errors for inexperienced users.

Raw Output Interpretation

Produces text-based output without built-in visualization or easy-to-read summaries, forcing users to manually parse results for analysis.

Frequently Asked Questions

Quick Stats

Stars487
Forks183
Contributors0
Open Issues12
Last commit8 years ago
CreatedSince 2016

Tags

#load-testing#performance-testing#database-performance#database-benchmark#oltp#mysql#tpc-c

Built With

M
MySQL
C
C++

Included in

MySQL2.6k
Auto-fetched 2 hours ago

Related Projects

SysbenchSysbench

Scriptable database and system performance benchmark

Stars6,768
Forks1,142
Last commit1 year ago
HammerDBHammerDB

HammerDB: The industry standard open-source database benchmark

Stars772
Forks150
Last commit18 hours ago
go-tpcgo-tpc

A toolbox to benchmark TPC workloads in Go

Stars210
Forks118
Last commit6 months ago
iibench-mysqliibench-mysql

Java based iiBench for MySQL/Percona/MariaDB

Stars47
Forks17
Last commit8 years ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub