As part of work on “High Performance MySQL, 3rd edition”, Baron asked me to compare different MySQL version in some simple benchmark, but on decent hardware.
So why not.
I took our Cisco UCS C250 and ran simple sysbench oltp read-write all data fits into memory workload.
Versions in question:
- MySQL 4.1
- MySQL 5.0
- MySQL 5.1 (with built-in InnoDB)
- MySQL 5.1 with InnoDB-plugin
- MySQL 5.5
- MySQL 5.6
All versions are vanilla MySQL, not Percona Server.
There is nothing unexpected, staring with InnoDB-plugin, MySQL scale much better on multi-cores, there is gain up to 1.7x in throughput.
What is interesting there, let’s take look on single thread results:
You can see that each new version is slower in single thread than previous.
It is actually easily explainable: each new version adds more features, which give more overhead.
Profiling MySQL 5.0 vs MySQL 4.1 couple years ago, I have seen biggest performance hit comes
from query parser. In MySQL 5.0 grammar became much bigger because of storage procedures and triggers.
And raw results, in tps (more is better)
|threads||MySQL 4.1||MySQL 5.0||MySQL 5.1||MySQL 5.1+InnoDB-plugin||MySQL 5.5||MySQL 5.6.2|
Scripts and results are also on our Launchpad Benchmark project