By default in MySQL 5.6, each time MySQL is
started (regular start or crash recovery), it iterates through
all the binlog files when GTIDs are not enabled. This can take a
very long time if you have a large number of binary log files.
MySQL and Percona Server 5.6.21+ have a fix with the
simplified-binlog-gtid-recovery
option. Let’s
explore this issue.
Understanding the issue
It was first reported by Yoshinori @ Facebook (bug #69097).
Let’s start by looking at a MySQL 5.6 instance where binary logging is enabled but GTIDs are disabled.
If we restart MySQL with strace, we’ll see:
# strace -e open service mysql start [...] open("/var/lib/mysql5621/mysql-bin.000004", O_RDONLY) = 13 …[Read more]