I used PMP this week to find bottlenecks in MySQL while running two benchmarks and describe the first bottleneck in this note. Changing the code as described here doubled the peak QPS. Pardon the hype in the title. This doubles peak QPS at 64 and 128 concurrent threads. To double throughput in all cases you might need faster CPU cores and a faster network. I created feature request 54790 for this.
I ran sysbench with concurrent threads that fetch one row by primary key per statement. HANDLER was used instead of SELECT. This is a workload for which some NoSQL servers are very fast. The sysbench client ran on one host and the mysqld server on another. Throughput saturated at less than 80,000 QPS for more than 32 concurrent threads. On previous tests with the …
[Read more]