LogoLogo
DoltHubBlogDiscordGitHubDolt
  • Introduction
    • What Is Dolt?
    • Installation
      • Linux
      • Windows
      • Mac
      • Build from Source
      • Application Server
      • Docker
      • Upgrading
    • Getting Started
      • Version Controlled Database
      • Git For Data
      • Versioned MySQL Replica
    • Use Cases
      • Data Sharing
      • Data and Model Quality Control
      • Manual Data Curation
      • Version Control for your Application
      • Versioned MySQL Replica
      • Audit
      • Configuration Management
      • Offline First
  • Concepts
    • Dolt
      • Git
        • Commits
        • Log
        • Diff
        • Branch
        • Merge
        • Conflicts
        • Remotes
        • Working Set
      • SQL
        • Databases
        • Schema
        • Tables
        • Primary Keys
        • Types
        • Indexes
        • Views
        • Constraints
        • Triggers
        • Procedures
        • Users/Grants
        • Transactions
        • System Variables
      • RDBMS
        • Server
        • Backups
        • Replication
    • DoltHub/DoltLab
      • Permissions
      • Pull Requests
      • Issues
      • Forks
  • SQL Reference
    • Running the Server
      • Configuration
      • Access Management
      • Branch Permissions
      • Backups
      • Garbage Collection
      • Metrics
      • Replication
      • Troubleshooting
    • Version Control Features
      • Using Branches
      • Merges
      • Querying History
      • Using Remotes
      • Procedures
      • Functions
      • System Tables
      • System Variables
      • Saved Queries
    • SQL Language Support
      • Data Description
      • Expressions, Functions, Operators
      • Supported Statements
      • MySQL Information Schema
      • Collations and Character Sets
      • System Variables
      • Miscellaneous
    • Supported Clients
      • Programmatic
      • SQL Editors
    • Benchmarks and Metrics
      • Correctness
      • Latency
      • Import
  • CLI Reference
    • Commands
    • Git Comparison
  • Architecture
    • Overview
    • Storage Engine
      • Commit Graph
      • Prolly Trees
      • Block Store
    • SQL
      • Go MySQL Server
      • Vitess
  • Guides
    • Cheat Sheet
    • Contributing
      • dolt
      • go-mysql-server
    • MySQL to Dolt Replication
    • Importing Data
    • Integrations
  • Other
    • FAQ
    • Roadmap
    • Versioning
  • Products
    • Hosted Dolt
      • Getting Started
      • Notable Features
      • SQL Workbench
      • Cloning a Hosted Database
      • Using DoltHub as a Remote
      • Infrastructure
    • DoltHub
      • Data Sharing
      • API
        • Authentication
        • SQL
        • CSV
        • Database
        • Hooks
      • Continuous Integration
        • Getting Started
        • Workflow Reference
      • Transform File Uploads
      • Workspaces
    • DoltLab
    • Dolt Workbench
    • DoltgreSQL
Powered by GitBook
On this page
  • Performance Roadmap
  • Benchmark Data

Was this helpful?

Edit on GitHub
Export as PDF
  1. SQL Reference
  2. Benchmarks and Metrics

Latency

PreviousCorrectnessNextImport

Last updated 4 days ago

Was this helpful?

Our approach to SQL performance benchmarking is to use sysbench, an industry standard benchmarking tool. We also benchmark Dolt using, an industry standard transactional throughput metric.

Performance Roadmap

Dolt is slightly slower than MySQL on the sysbench test suite. The goal is to get Dolt to match MySQL latency for common operations. Dolt is currently 10% slower than MySQL, approximately 10% faster on writes and 33% slower on reads. The multiple column represents this relationship with regard to a particular benchmark.

Dolt gets about 40% of the transactional throughput on TPC-C than MySQL, 40 transactions per second versus about 100 for MySQL. Most applications are not sensitive to transactional throughput beyond a handful per second.

It's important recognize that these are industry standard tests, and are OLTP oriented. Performance results may vary but Dolt is generally competitive on latency with MySQL and Postgres.

Benchmark Data

Below are the results of running sysbench MySQL tests against Dolt SQL Server for the most recent release of Dolt in the current default storage format. We will update this with every release. The tests attempt to run as many queries as possible in a fixed 2 minute time window. The Dolt and MySQL columns show the median latency in milliseconds (ms) of each query during that 2 minute time window.

The Dolt version is 1.53.6.

Read Tests
MySQL
Dolt
Multiple

covering_index_scan

1.86

0.67

0.36

groupby_scan

13.46

17.95

1.33

index_join

1.47

2.35

1.6

index_join_scan

1.42

1.44

1.01

index_scan

34.33

30.81

0.9

oltp_point_select

0.18

0.26

1.44

oltp_read_only

3.43

5.18

1.51

select_random_points

0.33

0.6

1.82

select_random_ranges

0.36

0.62

1.72

table_scan

34.95

32.53

0.93

types_table_scan

75.82

127.81

1.69

reads_mean_multiplier

1.3

Write Tests
MySQL
Dolt
Multiple

oltp_delete_insert

8.9

6.32

0.71

oltp_insert

4.1

3.07

0.75

oltp_read_write

8.9

11.45

1.29

oltp_update_index

4.18

3.19

0.76

oltp_update_non_index

4.18

3.07

0.73

oltp_write_only

5.67

6.32

1.11

types_delete_insert

8.28

6.67

0.81

writes_mean_multiplier

0.88

TPC-C TPS Tests
MySQL
Dolt
Multiple

tpcc-scale-factor-1

98.1

40.36

2.43

tpcc_tps_multiplier

2.43

TPC-C