Databases 4 min read

How to Size InnoDB Log Files for Optimal MySQL Performance

Understanding InnoDB log files is crucial for MySQL recovery and performance; this guide explains their role, the impact of size on checkpoints and recovery time, and provides a step‑by‑step method to calculate an optimal log size based on one hour of generated logs.

Java High-Performance Architecture
Java High-Performance Architecture
Java High-Performance Architecture
How to Size InnoDB Log Files for Optimal MySQL Performance

InnoDB Log File Purpose

When an InnoDB table crashes, MySQL scans the log files on restart, finds records not present in the tablespace, and performs redo operations to recover the data.

The size of the InnoDB log file is set with the innodb_log_file_size parameter.

If the value is too small, checkpoints increase, causing more disk flushes and degrading performance.

If the value is too large, the recovery process becomes slower, extending database downtime.

Therefore, choosing an appropriate log size is important.

How to Calculate an Appropriate Log Size

Idea

There is no strict definition of a “proper” size, but a common rule of thumb is to set the log size to roughly the amount of log generated in one hour.

You can measure the log size produced in one minute and extrapolate to an hour.

Calculation Method

Enable pager to filter only lines containing “sequence”. mysql> pager grep sequence; Show the current log sequence number, which represents the total number of bytes.

mysql> show engine innodb status;
Log sequence number 3836410803
1 row in set (0.00 sec)

Wait 60 seconds. mysql> select sleep(60); Show the log sequence number again.

mysql> show engine innodb status;
Log sequence number 3838334638
1 row in set (0.00 sec)

Disable the pager. mysql> nopager; Calculate the difference between the two sequence numbers and convert bytes to megabytes.

mysql> select (3838334638 - 3836410803) / 1024 / 1024 as MB_per_min;
+------------+
| MB_per_min |
+------------+
| 1.83471203 |
+------------+
1 row in set (0.00 sec)

This yields the amount of log generated per minute.

Other Factors Affecting Data Recovery

During recovery, besides redo, undo operations may also be required.

For example, if a transaction deletes 100,000 rows and crashes before committing, the recovery must undo the uncommitted deletes, prolonging the recovery time.

Avoid large transactions to improve recovery efficiency and reduce replication lag.

Original Source

Signed-in readers can open the original source through BestHub's protected redirect.

Sign in to view source
Republication Notice

This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactadmin@besthub.devand we will review it promptly.

InnoDBmysqlDatabase Recoverylog size
Java High-Performance Architecture
Written by

Java High-Performance Architecture

Sharing Java development articles and resources, including SSM architecture and the Spring ecosystem (Spring Boot, Spring Cloud, MyBatis, Dubbo, Docker), Zookeeper, Redis, architecture design, microservices, message queues, Git, etc.

0 followers
Reader feedback

How this landed with the community

Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.