Overview
Pinned:
Posts for 2020:
Posts for 2023:
Benchmark reports for 2024
- Insert Benchmark
- Small server
- Postgres, Beelink 16G RAM (SER4), Jan24: cached
- Postgres, Beelink 16G RAM (SER4), Jan24, v2: cached
- Postgres, Beelink 16G RAM (SER4), Jan24, v3: cached
- Postgres, Beelink 16G RAM (SER4), Jan24: IO-bound
- Postgres, Beelink 16G RAM (SER4), Feb24: cached
- Postgres, Beelink 16G RAM (SER4), Feb24: IO-bound
- Postgres, Beelink 16G RAM (SER4), Mar24, tuning v16: cached, IO-bound
- MyRocks, Beelink 16G RAM (SER4), Jan24, v2, cached: 5.6.35, 8.0, all, latest
- MyRocks, Beelink 16G RAM (SER4), Mar24: cached, IO-bound
- InnoDB, Beelink 16G RAM (SER4), Jan24, cached: 5.6, 5.7, 8.0, all
- InnoDB, Beelink 16G RAM (SER4), Feb24, IO-bound: 5.6, 5.7, 8.0, all
- InnoDB, Beelink 16G RAM (SER4), Mar24: cached, IO-bound
- Postgres and MySQL, Beelink 16G RAM (SER4), Mar24: cached, IO-bound
- MariaDB and MySQL, Beelink 16G RAM (SER4), Apr24, cached: all, MariaDB: all, MariaDB: 10.x, MariaDB: 11.4, MariaDB vs MySQL, MySQL
- Postgres, Beelink 32G RAM (SER7), Jan24: cached
- Postgres, Beelink 32G RAM (SER7), Feb24: cached
- Postgres, Beelink 32G RAM (SER7), Feb24: IO-bound
- Postgres, Beelink 32G RAM (SER7), Mar24: cached, IO-bound
- MyRocks, Beelink 32G RAM (SER7), cached, Jan24: 5.6.35, 8.0.28, 8.0.32, 8.0, all
- MyRocks, Beelink 32G RAM (SER7), cached, Jan24, v2: 5.6.35, 8.0, all, latest
- Medium server (GCP, c2-standard-30)
- MySQL, InnoDB, cached workload, Jan24: MySQL 5.6, MySQL 5.7, MySQL 8.0, MySQL 5.6, 5.7 and 8.0
- MyRocks, cached workload, Jan24: 5.6.35, 8.0.28, 8.0.32, 5.6.35, 8.0.28, 8.0.32 - many versions, 5.6.35, 8.0.28, 8.0.32 - latest versions
- MyRocks, cached workload, Jan24, v2: 5.6.35, 8.0, latest 5.6, 8.0, all
- MyRocks, IO-bound workload, Jan24, v2: 5.6.35, 8.0, all, latest
- Large server (2-socket, 24-core)
- MyRocks, cached workload, Jan24: 5.6.35, 8.0.28, 8.0.32
- Postgres, Feb24: cached workload
- Large server (32-core)
- Large server (2-socket, 20 cores/socket)
- InnoDB, v2: cached
- Small server
Benchmark reports for 2023
- jemalloc
- Medium server, focus on jemalloc 5.2.1: IO-bound with LRU block cache, Hyper Clock cache
- Postgres 16 (Sep 2023)
- Small server, insert benchmark
- wal_compression=lz4: Cached by Postgres, IO-bound
- wal_compression=none: Cached by Postgres, IO-bound
- Medium server, insert benchmark
- wal_compression=lz4: Cached by Postgres, IO-bound
- wal_compression=none: Cached by Postgres, IO-bound
- Small server, insert benchmark
- Postgres 16 beta (Aug 2023)
- Small server, insert benchmark:
- wal_compression=lz4: Cached by Postgres, IO-bound
- wal_compression=none: Cached by Postgres, IO-bound
- Medium server, insert benchmark: Cached by Postgres, IO-bound, wal_compression=lz4, IO-bound, wal_compression=none
- Small server, insert benchmark:
- MyRocks tombstones (Aug 2023)
- Large server: Cached by RocksDB, IO-bound
- MySQL perf regressions with the Insert Benchmark
- Large server, Dec 2023, FB MySQL with MyRocks 5.6.35, 8.0.28, 8.0.32
- Cached database: latest builds
- Large server, Dec 2023, MySQL with InnoDB
- Cached workload: without NUMA interleave
- Small server, Dec 2023, cached workload, MySQL with InnoDB
- Medium server, Nov 2023, 5.6 to 8.0
- Cached: some 5.6 releases, all 5.7 releases, All 8.0 releases, some 5.6, 5.7 and 8.0 releases
- IO-bound
- Small server, Oct 2023, 5.6 to 8.0, IO-bound: InnoDB 5.6, InnoDB 5.7, InnoDB 8.0, InnoDB 5.6, 5.7 and 8.0
- Small server, Sep 2023, 5.6 to 8.0 all versions, cached: 5.6, 5.7, 8.0, 5.6, 5.7, 8.0
- Large server, Sep 2023, part 3 (oops): cached workload, IO-bound workload
- Large server, Sep 2023, part 2: cached workload base config, c5 config
- Large server, Aug 2023, part 1
- Medium server, Aug 2023, part 2
- Medium server, Aug 2023, part 1
- Small server, Aug 2023, part 1
- Small server, Aug 2023, part 2
- Cached by RocksDB: base config, c5 config
- IO-bound: base config, c5 config
- Large server, Dec 2023, FB MySQL with MyRocks 5.6.35, 8.0.28, 8.0.32
- Insert benchmark with deletes (July 2023)
- MyRocks
- Small server, tuning my.cnf (Beelink): Cached by RocksDB, Cached by OS, IO-bound
- Small server (Beelink, 8-cores)
- 1 client: cached by RocksDB and by OS page cache, IO-bound
- 4 clients: cached by RocksDB and by OS page cache, IO-bound
- Medium server (c2-standard-30, 15-cores)
- With delete-per-insert: Cached by MyRocks, Cached by OS, IO-bound
- Configuration tuning, medium server, July 2023: Cached by RocksDB, Cached by OS, IO-bound
- Large server, builds back to 2022: Cached by RocksDB, IO-bound
- Large server, my.cnf tuning: Cached by RocksDB, Cached by OS, IO-bound
- InnoDB
- Write stalls: big server and cached by OS
- Postgres
- MyRocks
- InnoDB config tuning for the insert benchmark
- medium server with Percona Server, August 2023
- Cached by InnoDB: 8.0 only, 5.6 vs 5.7 vs 8.0
- IO-bound: 8.0 only, 5.6 vs 5.7 vs 8.0
- big server, August 2023
- Cached by InnoDB: MySQL 5.6.51, MySQL 5.7.40, MySQL 8.0.33, MySQL 5.6, 5.7 and 8.0
- Cached by OS: MySQL 5.6.51, MySQL 5.7.40, MySQL 8.0.33, MySQL 5.6, 5.7 and 8.0
- IO-bound: MySQL 5.6.51, MySQL 5.7.40, MySQL 8.0.33, MySQL 5.6, 5.7 and 8.0
- c2-standard-30, June 2023
- MySQL 5.6.51: cached by InnoDB, cached by OS, IO-bound
- MySQL 5.7.40: cached by InnoDB, cached by OS, IO-bound
- MySQL 8.0.33: cached by InnoDB, cached by OS, IO-bound
- c2-standard-30, July 2023
- MySQL 5.6.51: cached by InnoDB, cached by OS, IO-bound
- MySQL 5.7.40: cached by InnoDB, cached by OS, IO-bound
- MySQL 8.0.33: cached by InnoDB, cached by OS, IO-bound
- MySQL 5.6, 5.7, 8.0: cached by InnoDB, cached by OS, IO-bound
- small server, August 2023
- Cached by InnoDB: 5.6.51, 5.7.40, 8.0.33, 5.6 vs 5.7 vs 8.0
- Cached by OS: 5.6.51, 5.7.40, 8.0.33, 5.6 vs 5.7 vs 8.0
- IO-bound: 5.6.51, 5.7.40, 8.0.33, 5.6 vs 5.7 vs 8.0
- medium server with Percona Server, August 2023
- Postgres config tuning for the insert benchmark
- Postgres 15.2 and 15.3, c2-standard-30 server, Aug 2023: Cached by Postgres, IO-bound
- Postgres 15.3, c2-standard-30 server, May 2023
- Postgres 15.3, c2-standard-30 server, more tuning, with delete_per_insert, up to a17 config, May 2023
- Postgres 15.3, c2-standard-30 server, more tuning, with delete_per_insert, adds a18 config, June 2023
- Postgres 15.3, c2-standard-30 server: IO-bound, with delete per insert, configs up to a18, June 2023
- Postgres 15.3, c2-standard-30 server with delete per insert, configs up to a22, July 2023
- Postgres 15.2, Beelink (8-cores, 16G RAM), June 2023
- Postgres 15.2, Beelink (8-cores, 16G RAM), July 2023
- Postgres 15.2 and 15.3, Beelink Aug 2023: Cached by Postgres, IO-bound
- Postgres 16
- at git sha 1ab763fc2
- Beelink (server with 8 cores, 16G RAM)
- insert benchmark
- cached by Postgres: 1 user, 1 table, 4 users, 4 tables, 4 users, 1 table
- cached by OS page cache: 1 user, 1 table, 4 users, 4 tables, 4 users, 1 table
- sysbench
- cached by Postgres: pending
- cached by OS page cache: pending
- insert benchmark
- Beelink (server with 8 cores, 16G RAM)
- at git sha 1ab763fc2
- Compiler options, insert benchmark, small server (Beelink, 8 AMD cores, 16G RAM, NVMe SSD), May 2023
- Cached by database
- MyRocks
- 1 thread & 1 table - 5.6.35, 8.0.28, 5.6 vs 8.0
- 4 threads & 4 tables - 5.6.35, 8.0.28, 5.6 vs 8.0
- 4 threads & 1 table - 5.6.35, 8.0.28, 5.6 vs 8.0
- InnoDB
- 1 thread & 1 table - versions 5.6, 5.7, 8.0, versions 8.0.2x, 8.0.3x, version 8.0.31 builds
- 4 threads & 4 tables - versions 5.6, 5.7, 8.0, versions 8.0.2x, 8.0.3x, version 8.0.31 builds
- 4 threads & 1 table - versions 5.6, 5.7, 8.0, versions 8.0.2x, 8.0.3x, version 8.0.31 builds
- Postgres
- 1 thread & 1 table - Version 15.1 builds, Versions 11 to 15
- 4 threads & 4 tables - Version 15.1 builds, Versions 11 to 15
- 4 threads & 1 table - Version 15.1 builds, Versions 11 to 15
- MyRocks
- Cached by OS
- MyRocks
- 1 thread & 1 table - 5.6.35, 8.0.28, 5.6 vs 8.0
- 4 threads & 4 tables - 5.6.35, 8.0.28, 5.6 vs 8.0
- 4 threads & 1 table - 5.6.35, 8.0.28, 5.6 vs 8.0
- InnoDB
- 1 thread & 1 table - versions 5.6, 5.7, 8.0, versions 8.0.2x, 8.0.3x, version 8.0.31 builds
- 4 threads & 4 tables - versions 5.6, 5.7, 8.0, versions 8.0.2x, 8.0.3x, version 8.0.31 builds
- 4 threads & 1 table - versions 5.6, 5.7, 8.0, versions 8.0.2x, 8.0.3x, version 8.0.31 builds
- Postgres
- 1 thread & 1 table - Version 15.1 builds, Versions 11 to 15
- 4 threads & 4 tables - Version 15.1 builds, Versions 11 to 15
- 4 threads & 1 table - Version 15.1 builds, Versions 11 to 15
- MyRocks
- Cached by database
- Compiler options, insert benchmark, big server (c2-standard-60, 30 cores, hyperthreads disabled, 240G RAM), May 2023
- Cached by database
- MyRocks
- 20 threads & 20 tables - 5.6.35, 8.0.28, 5.6 vs 8.0
- 20 threads & 1 table - 5.6.35, 8.0.28, 5.6 vs 8.0
- InnoDB
- 20 threads & 20 tables - versions 5.6, 5.7, 8.0, versions 8.0.22, 8.0.28, 8.0.31, 8.0.32, 8.0.31 builds
- 20 threads & 1 table - versions 5.6, 5.7, 8.0, versions 8.0.22, 8.0.28, 8.0.31, 8.0.32, 8.0.32 builds
- Postgres
- 20 threads & 20 tables - Version 15.1 builds, Versions 11 to 15
- 20 threads & 1 table - Version 15.1 builds, Versions 11 to 15
- MyRocks
- Cached by OS
- MyRocks
- 20 threads & 20 tables - 5.6.35, 8.0.28, 5.6 vs 8.0
- 20 threads & 1 table - 5.6.35, 8.0.28, 5.6 vs 8.0
- InnoDB
- 20 threads & 20 tables - versions 5.6, 5.7, 8.0, versions 8.0.22, 8.0.28, 8.0.31, 8.0.32, 8.0.31 builds
- 20 threads & 1 table - versions 5.6, 5.7, 8.0, versions 8.0.22, 8.0.28, 8.0.31, 8.0.32
- Postgres
- 20 threads & 20 tables - Version 15.1 builds, Versions 11 to 15
- 20 threads & 1 table - Version 15.1 builds, Versions 11 to 15
- MyRocks
- Cached by database
- Compiler options, sysbench, small server (Beelink, 8-core AMD, 16G RAM)
- MyRocks
- One thread, one table: 5.6.35, 8.0.28, 5.6 vs 8.0
- Four threads, four tables: 5.6.35, 8.0.28, 5.6 vs 8.0
- Four threads, one table: 5.6.35, 8.0.28, 5.6 vs 8.0
- MyRocks
- Insert benchmark on Intel NUC to show the benefit from the insert buffer
Others from 2023:
- Insert Benchmark with Postgres 16 storage engines
Benchmark reports for 2022:
- Insert Benchmark on c2-standard-60 (GCP, 30 cores, 240G RAM), Postgres
- Cached by Postgres, 20 clients, table per client for versions 11.19, 12.14, 13.10, 14.7, 15.1, 15.2, 11 to 15
- Cached by Postgres, 20 clients, only one table for versions 11.19, 12.14, 13.10, 14.7, 15.1, 15.2, 11 to 15
- Cached by OS page cache, 20 clients, table per client for versions 11.19, 12.14, 13.10, 14.7, 15.1, 15.2, 11 to 15
- Cached by OS page cache, 20 clients, only one table for versions 11.19, 12.14, 13.10, 14.7, 15.1, 15.2, 11 to 15
- Insert Benchmark on Beelink (AMD, 8-core, 16G RAM, NVMe)
- Cached by DBMS, 20M rows
- IO-bound, 500m rows
- Insert Benchmark on AWS c7g.2xl with io2 SSD (256G, 10K IOPs)
- Insert Benchmark on AWS c6i.2xl with io2 SSD (256G, 10K IOPs)
- Insert Benchmark on AWS c7g.4xl with io2 SSD (1T, 32K IOPs)
- Insert Benchmark on AWS c6i.4xl with io2 SSD (1T, 32K IOPs)
- Insert Benchmark on AWS c7g.8xl with io2 SSD (2T, 64K IOPs)
- Insert Benchmark on AWS c6i.8xl with io2 SSD (2T, 64K IOPs)
- Insert Benchmark on AWS c7g.16xl with io2 SSD (5T, 100K IOPs)
- Insert Benchmark on AWS c6i.16xl with io2 SSD (5T, 64K IOPs)
- Insert Benchmark
- Insert Benchmark to test wal_compression in Postgres 15
- Insert Benchmark for Postgres 12.11, 13.7, 14.3 and 15beta
- Intel NUC, IO-bound
- Intel NUC, IO-bound, uses prepared statements
- Intel NUC, IO-bound, uses prepared statements, 15b1 with patch 1
- Intel NUC, IO-bound, uses prepared statements, 15b1 with patch 1, larger WAL
- Intel NUC, IO-bound, uses prepared statements, larger WAL, includes 15beta
- Intel NUC, not IO-bound
- Intel NUC, not IO-bound, uses prepared statements
- Intel NUC, not IO-bound, uses prepared statements, 15b1 with patch 1
- Intel NUC, not IO-bound, uses prepared statements, 15b1 with patch 1, larger WAL
- Intel NUC, IO-bound, uses prepared statements, larger WAL, includes 15beta
- Insert Benchmark for Postgres 14.0, 14.1, 14.2, 14.3
Benchmark reports for 2021:
- November
- Insert benchmark, Intel NUC, 1 user, 20M rows (in memory)
- Insert benchmark, Intel NUC, 1 user, 500M rows (IO-bound)
- January, Intel NUC
Benchmark reports for 2020:
- Insert benchmark tests with a table per user
- Insert benchmark tests with 1 table shared by all users
- Linkbench
- Insert benchmark on NUC to determine the best configuration