> For the complete documentation index, see [llms.txt](https://mariadb.com/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://mariadb.com/docs/server/server-usage/storage-engines/innodb.md).

# InnoDB

{% columns %}
{% column %}
{% content-ref url="/pages/UB0l97H7YOGHLxnePFRO" %}
[InnoDB Introduction](/docs/server/server-usage/storage-engines/innodb/innodb-storage-engine-introduction.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
An overview of the InnoDB storage engine, detailing its support for ACID transactions, row-level locking, and crash recovery.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/edaY52hkdEpgvGGdySUj" %}
[InnoDB File Format](/docs/server/server-usage/storage-engines/innodb/innodb-file-format.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Learn about the different file formats supported by InnoDB, such as Antelope and Barracuda, and how they impact table features and storage.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/Pc5NQxhfRtGpIDiQE3MR" %}
[InnoDB Limitations](/docs/server/server-usage/storage-engines/innodb/innodb-limitations.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
A list of constraints and limits within the InnoDB engine, including maximum table size, column counts, and index key lengths.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/6tSot7nUZNeoHk1jBqf1" %}
[AUTO\_INCREMENT Handling in InnoDB](/docs/server/server-usage/storage-engines/innodb/auto_increment-handling-in-innodb.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
This page explains how InnoDB manages AUTO\_INCREMENT columns, including initialization behavior, gap handling, and potential restart effects.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/0pcVzvdeg1F83ANS4k8o" %}
[Binary Log Group Commit and InnoDB Flushing Performance](/docs/server/server-usage/storage-engines/innodb/binary-log-group-commit-and-innodb-flushing-performance.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Understand how group commit works with InnoDB to improve performance by reducing the number of disk syncs required during transaction commits.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/t8aZO1cXrtUB6l4atlSJ" %}
[InnoDB Asynchronous I/O](/docs/server/server-usage/storage-engines/innodb/innodb-asynchronous-io.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Explore how InnoDB uses asynchronous I/O on various operating systems to handle multiple read and write requests concurrently without blocking.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/17aEmW1LGyBUeStq6BOB" %}
[InnoDB Buffer Pool](/docs/server/server-usage/storage-engines/innodb/innodb-buffer-pool.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Complete InnoDB Buffer Pool guide for MariaDB. Complete reference documentation for implementation, configuration, and usage with comprehensive examples and.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/nVDDB7FOkGdbhhWVEzYD" %}
[InnoDB Change Buffering](/docs/server/server-usage/storage-engines/innodb/innodb-change-buffering.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Learn about the change buffer, an optimization that delays secondary index writes to reduce I/O overhead for non-unique index modifications.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/EkabwyA4IosropC3XWbf" %}
[InnoDB Data Scrubbing](/docs/server/server-usage/storage-engines/innodb/innodb-data-scrubbing.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
This feature allows for the secure deletion of data by overwriting deleted records in tablespaces and logs to prevent data recovery.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/GRCLGeo95wtolsAKj4DM" %}
[InnoDB Doublewrite Buffer](/docs/server/server-usage/storage-engines/innodb/innodb-doublewrite-buffer.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
The doublewrite buffer is a storage area where InnoDB writes pages before writing them to the data file, preventing data corruption from partial page writes.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/t1urYkR291zua25fwavQ" %}
[InnoDB Flush Method](/docs/server/server-usage/storage-engines/innodb/innodb-flush-method.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Detailed description of the innodb\_flush\_method variable, its various settings, and effects.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/Do4juSvIFShJDG8VjMUv" %}
[InnoDB Lock Modes](/docs/server/server-usage/storage-engines/innodb/innodb-lock-modes.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
InnoDB employs Row-Level Locking with Shared (S) and Exclusive (X) locks, along with Intention locks, to manage concurrent transaction access.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/VhiaTvkFcpI4AsbPc6qW" %}
[InnoDB Log Archiving](/docs/server/server-usage/storage-engines/innodb/innodb-log-archiving.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Retain the full InnoDB write-ahead log history (from MariaDB 13.0) by archiving log files, enabling point-in-time recovery and incremental backups.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/d31gNFc6VLmWUdi2nB9l" %}
[InnoDB Monitors](/docs/server/server-usage/storage-engines/innodb/innodb-monitors.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
InnoDB Monitors, such as the Standard, Lock, and Tablespace monitors, provide detailed internal state information to the error log for diagnostics.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/kgkTw6B9jTFjGxs6uMsx" %}
[InnoDB Page Compression](/docs/server/server-usage/storage-engines/innodb/innodb-page-compression.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
This feature enables transparent page-level compression for tables using algorithms like LZ4 or Zlib, reducing storage requirements.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/IWH0uFQKxwWJXUNOkC1l" %}
[InnoDB Page Flushing](/docs/server/server-usage/storage-engines/innodb/innodb-page-flushing.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Learn about the background processes that flush dirty pages from the buffer pool to disk, including adaptive flushing algorithms to optimize I/O.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/mblXccBEzcQGR2iR8fuf" %}
[InnoDB Purge](/docs/server/server-usage/storage-engines/innodb/innodb-purge.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
The purge process is a garbage collection mechanism that removes old row versions from the undo log that are no longer required for MVCC.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/W4j8Q5gfPeULwEXzI098" %}
[InnoDB Undo Log](/docs/server/server-usage/storage-engines/innodb/innodb-undo-log.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
The undo log stores the "before" image of data modified by active transactions, supporting rollbacks and consistent read views.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/NyC0HodiPjcwFimWLK9e" %}
[InnoDB Redo Log](/docs/server/server-usage/storage-engines/innodb/innodb-redo-log.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
The redo log is a disk-based transaction log used during crash recovery to replay incomplete transactions and ensure data durability.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/KrCX67JyeofuFKr8KJQA" %}
[InnoDB Strict Mode](/docs/server/server-usage/storage-engines/innodb/innodb-strict-mode.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
InnoDB Strict Mode enforces stricter SQL compliance, returning errors instead of warnings for invalid CREATE TABLE options or potential data loss.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/sm0V5NiyCf0BLCDYBAuL" %}
[InnoDB System Variables](/docs/server/server-usage/storage-engines/innodb/innodb-system-variables.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Complete guide to InnoDB system variables for MariaDB. Complete reference for buffer pool, I/O tuning, transaction settings, and optimization for production use.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/j0u59xecYxh5tcjq2fTn" %}
[InnoDB Versions](/docs/server/server-usage/storage-engines/innodb/innodb-versions.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
This page is outdated. It's left in place because release notes for old MariaDB versions refer to it (MariaDB < 10.3).
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/WyLISu5z38L3L5UOe5Wy" %}
[InnoDB Architecture for MariaDB Enterprise Server](/docs/server/server-usage/storage-engines/innodb/innodb-architecture-for-mariadb-enterprise-server.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Understand InnoDB's architecture for MariaDB Enterprise Server. This section details its components and their interactions, focusing on performance, scalability, and reliability for enterprise workloa
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/SDnVbYh73ilmgepXEl41" %}
[InnoDB Online DDL](/docs/server/server-usage/storage-engines/innodb/innodb-online-ddl.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Perform online DDL operations with InnoDB in MariaDB Server. Learn how to alter tables without blocking read/write access, ensuring high availability for your applications.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/0PwIejinzs6Cg4hwfSop" %}
[InnoDB Row Formats](/docs/server/server-usage/storage-engines/innodb/innodb-row-formats.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Explore InnoDB row formats in MariaDB Server. Understand different formats like Compact, Dynamic, and Compressed, and how they impact storage efficiency and performance for your data.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/ERWIZOdVFWmIx4NGM4li" %}
[InnoDB Tablespaces](/docs/server/server-usage/storage-engines/innodb/innodb-tablespaces.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Manage InnoDB tablespaces in MariaDB Server. Understand their role in data organization, performance, and recovery, including file-per-table and shared tablespaces.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/xc0xiai0ClsRprlJBd9p" %}
[InnoDB Troubleshooting](/docs/server/server-usage/storage-engines/innodb/innodb-troubleshooting.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Troubleshoot InnoDB issues in MariaDB Server. Find solutions and best practices for common problems, ensuring your InnoDB-based applications run smoothly and efficiently.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/TonYuMdUwlHRg9njWksx" %}
[MariaDB Enterprise Server InnoDB Operations](/docs/server/server-usage/storage-engines/innodb/mariadb-enterprise-server-innodb-operations.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Learn about InnoDB operations in MariaDB Enterprise Server. This section covers critical management tasks, including configuration, performance tuning, and troubleshooting for enterprise-grade deploym
{% endcolumn %}
{% endcolumns %}
