tl;dr
- MyRocks does worse than InnoDB and the difference is larger on read-heavy tests.
- InnoDB QPS tends to decrease after 5.6.35
- InnoDB range scans are more efficient after 5.6.35
Configuration
I used core i5 Intel NUC servers with an SSD, my sysbench helper scripts and sysbench branch. The test was run with 4 tables and 1M rows/table. Somewhat accurate my.cnf files are here. The test was run for MyRocks compiled on August 15 with git hash 0d76ae and InnoDB from upstream 5.6.35, 5.7.17 and 8.0.2. The binlog was enabled but sync on commit was disabled for the binlog and database log. InnoDB 8.0.2 used latin1 charset and latin1_swedish_ci collation to match earlier releases. The sysbench client and mysqld shared the host.
Results
All of the data is here. Below I share the QPS ratios to compare QPS for MyRocks and InnoDB 5.7.17 with InnoDB 5.6.35. The results are similar to the results from in-memory sysbench on a large server.
QPS ratio:
* rocks = QPS for MyRocks / QPS for InnoDB 5.6.35
* inno = QPS for InnoDB 5.7.17 / QPS for InnoDB 5.6.35
1 connection
rocks inno
0.391 0.966 update-inlist
0.723 0.911 update-one
0.965 1.042 update-index
0.592 0.908 update-nonindex
0.651 0.915 update-nonindex-special
0.700 0.893 delete-only
0.628 1.122 read-write.range100
0.838 1.495 read-write.range10000
0.680 1.155 read-only.range100
0.826 1.438 read-only.range10000
0.655 0.882 point-query
0.247 0.966 random-points
0.287 0.944 hot-points
0.696 0.884 insert-only
----- -----
0.634 1.037 average
No comments:
Post a Comment