> 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/innodb-row-formats.md).

# InnoDB Row Formats

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

{% column %}
An overview of the four InnoDB row formats (REDUNDANT, COMPACT, DYNAMIC, COMPRESSED), comparing their storage efficiency and feature support.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/5aZY6Tnb93eCMhGOSNYU" %}
[InnoDB COMPACT Row Format](/docs/server/server-usage/storage-engines/innodb/innodb-row-formats/innodb-compact-row-format.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Detailed information on the COMPACT row format, which reduces storage space by roughly 20% compared to REDUNDANT, handling NULLs and variable-length columns efficiently.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/dc26l7mMfPZWgnFpcTx8" %}
[InnoDB COMPRESSED Row Format](/docs/server/server-usage/storage-engines/innodb/innodb-row-formats/innodb-compressed-row-format.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Learn about the COMPRESSED row format, which compresses data and index pages using algorithms like zlib to minimize storage footprint at the cost of CPU.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/rUh6nAxbo7MgL4rkmiEh" %}
[InnoDB DYNAMIC Row Format](/docs/server/server-usage/storage-engines/innodb/innodb-row-formats/innodb-dynamic-row-format.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
The DYNAMIC row format, default in modern MariaDB versions, optimizes storage for large BLOB/TEXT columns by storing them on separate overflow pages.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/N08DuHaFFOn6NIJCokFi" %}
[InnoDB REDUNDANT Row Format](/docs/server/server-usage/storage-engines/innodb/innodb-row-formats/innodb-redundant-row-format.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Information on the legacy REDUNDANT row format, primarily maintained for backward compatibility with older MySQL versions.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/sEZx4JSGJHEZF08KA9Xo" %}
[Troubleshooting Row Size Too Large Errors with InnoDB](/docs/server/server-usage/storage-engines/innodb/innodb-row-formats/troubleshooting-row-size-too-large-errors-with-innodb.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Complete InnoDB row size troubleshooting: innodb\_strict\_mode, ALTER TABLE ROW\_FORMAT=DYNAMIC, VARCHAR/VARBINARY(256) overflow, and BLOB/TEXT solutions.
{% endcolumn %}
{% endcolumns %}
