I want to benchmark the performance of MySQL, I want to know if logging affect performance.
MySQL has logs: general-log, binlog, errlog, redo log. Do these logging behaviors affect performance? For performance, I mean throughput, TPS obtained from benchmarks like TPC-C
TPC-H
YCSB
sysbench oltp
.
I know that the redo log (WAL) does affect performance because the queries should wait until the log to be flushed to disk. But do queries wait for other logs?
Thanks!
Best Answer
Log files
The disk subsystem makes a big difference in certain write-intensive apps:
Rant
Benchmarks are a popular way to lie about how great your thing is. What is your goal for the benchmark?
It is somewhat reasonable to compare two hardware setups or versions via comparing benchmarks. However, TPC (etc) benchmarks only test a few focused things. Keep in mind that your app may not be really like any of the TPCs.
Also, any 'real' system has multiple things going on. Benchmarks (like drug trials) mostly punt when it comes to combinations.
Some benchmarks focus on "how many connections can be run before the system keels over?" If you are anywhere near that limit, you are already in trouble, and latency may make the system a failure.