Mark Callaghan (Facebook) 在 Blog 一篇文章「Linkbench – in-memory, low-concurrency」來分析 InnoDB、MyRocks、TokuDB 之間的效能差異
測試的設備是 48 HW thread, fast SSD 和 256 GB 的 RAM,將資料庫都儲存在記憶體,以低併發(2) 的方式進行測試
測試結果摘要:
InnoDB from MySQL 5.6 had the best throughput
CPU efficiency is similar for MyRocks and InnoDB
There is a CPU regression from MySQL 5.6 to 5.7 to 8.x
Write efficiency was similar for all engines on the load test but much better for MyRocks and TokuDB on the transaction test.
Load Results
ips wkb/i Mcpu/i size wMB/s cpu engine
54283 1.60 83 14 86.7 4.5 myrocks
64402 1.02 72 16 65.6 4.6 inno5635
56414 1.03 77 16 58.2 4.3 inno5717
42954 1.02 97 16 45.1 4.2 inno802
21611 1.42 179 14 30.7 3.9 toku5717
Transaction Results
tps wkb/t Mcpu/t size un gn ul gl wMB/s engine
5489 0.78 642 15 0.3 0.1 0.5 0.5 4.3 myrocks
7239 5.15 524 26 0.3 0.1 0.4 0.2 37.3 inno5635
6463 5.17 580 26 0.3 0.1 0.5 0.3 33.4 inno5717
5855 5.25 623 25 0.3 0.1 0.6 0.3 30.7 inno802
3333 0.08 1043 18 0.6 0.2 1.0 0.8 10.0 toku5717
負載測試的吞吐量
交易測試的吞吐量
以效能來說 InnoDB 5.6 比 5.7,5.8 還要好很多 … 而 transaction write 在 TokuDB 和 MyRocks 比較好