MariaDB innodb_log_file_size Explained: Redo Logs, Performance, and Best Practices

Published: 2026-07-15

Introduction

The innodb_log_file_size system variable specifies the size of each InnoDB redo log file.

Redo logs record changes made to database pages before they are written to the data files on disk. This mechanism improves crash recovery, supports transaction durability, and helps optimize disk write performance.

Choosing an appropriate redo log size is important for write-intensive workloads. A log file that is too small can increase checkpoint activity and reduce performance, while an excessively large log file may lengthen crash recovery time.

This guide explains how innodb_log_file_size works, how to configure it, recommended values, and common tuning mistakes.

Test Environment

Operating System : AlmaLinux 10
PHP Version      : PHP 8.3
Web Server       : Nginx
PHP-FPM          : Enabled
Architecture     : x86_64
Last Tested      : July 2026

What Is innodb_log_file_size?

The innodb_log_file_size variable defines the size of each InnoDB redo log file.

View the current value:

SHOW VARIABLES LIKE 'innodb_log_file_size';

Example output:

+------------------------+-----------+
| Variable_name          | Value     |
+------------------------+-----------+
| innodb_log_file_size   | 100663296 |
+------------------------+-----------+

The value is displayed in bytes. In this example, the redo log file size is approximately 96 MB.

How It Works

When data is modified, InnoDB does not immediately write every change to the database files.

Instead, the process generally works like this:

Application
      │
      ▼
SQL Statement
      │
      ▼
InnoDB Buffer Pool
      │
      ▼
Redo Log
      │
      ▼
Database Files

The redo log records changes first, allowing MariaDB to recover unfinished transactions after an unexpected shutdown.

Check the Current Value

View the current configuration:

SHOW VARIABLES LIKE 'innodb_log_file_size';

To inspect additional redo log settings:

SHOW VARIABLES LIKE 'innodb_log%';

Change innodb_log_file_size

Edit the MariaDB configuration file.

sudo nano /etc/my.cnf

Example:

[mysqld]

innodb_log_file_size = 512M

Save the file.

Restart MariaDB

Apply the new configuration.

sudo systemctl restart mariadb

Verify the service:

sudo systemctl status mariadb

Expected output:

Active: active (running)

Verify the New Value

SHOW VARIABLES LIKE 'innodb_log_file_size';

Recommended Values

| Workload                     | Suggested Value |
| ---------------------------- | --------------- |
| Development                  |            128M |
| Personal Website             |            256M |
| WordPress                    |       256M–512M |
| General Production           |            512M |
| Write-Intensive Applications |              1G |

The appropriate value depends on transaction volume, storage performance, and recovery requirements.

Relationship with innodb_buffer_pool_size

These two variables complement each other.

| Variable                  | Purpose                       |
| ------------------------- | ----------------------------- |
| `innodb_buffer_pool_size` | Caches table data and indexes |
| `innodb_log_file_size`    | Stores redo log records       |

The buffer pool improves read performance, while redo logs optimize write operations and crash recovery.

Common Issues

Log File Too Small

A small redo log may lead to:

More frequent checkpoints.

Increased disk write activity.

Lower write performance.

Higher I/O overhead.

Log File Too Large

An excessively large redo log may result in:

Longer crash recovery times.

Increased disk usage.

More time required to replay redo logs after an unexpected shutdown.

Larger is not always better; choose a size that matches your workload.

Changing the Value Without Restarting

innodb_log_file_size is typically read during server startup.

After modifying the configuration, restart MariaDB and verify that the new value has taken effect.

Best Practices

Size redo logs according to write activity rather than database size alone.

Monitor disk I/O and checkpoint behavior before making changes.

Increase the value gradually instead of making very large jumps.

Test configuration changes in a staging environment when possible.

Verify the new setting after restarting the server.

Related Articles

MariaDB Explained

MariaDB innodb_buffer_pool_size Explained

MariaDB innodb_flush_log_at_trx_commit Explained

MariaDB max_connections Explained

MariaDB table_open_cache Explained

Conclusion

The innodb_log_file_size variable determines the size of each InnoDB redo log file and plays an important role in write performance, transaction durability, and crash recovery.

For most production servers, values between 256 MB and 512 MB provide a good balance between efficient write operations and reasonable recovery times. Monitor your workload and storage performance, then adjust the setting based on measured behavior rather than choosing the largest possible value.

Explore More

Technology Guides →

MariaDB Explained: Essential Configuration Variables and Best Practices

MariaDB max_connections Explained: Configuration, Limits, and Best Practices

MariaDB innodb_buffer_pool_size Explained: Memory, Performance, and Best Practices

MariaDB max_allowed_packet Explained: Configuration, Packet Size, and Best Practices

Southeast Asia Insights →

Best Areas to Live in Bangkok in 2026: A Complete Guide for Expats and Digital Nomads

Best Coworking Spaces in Bangkok 2026: A Guide for Digital Nomads and Remote Workers

Why Do People in Southeast Asia Love Iced Drinks? The Climate, Culture, and Science Explained

Best eSIM for Southeast Asia in 2026: Compare the Top Travel eSIMs