On save error: Row size too large (MariaDB)¶
There is a limit on how much can fit into a single InnoDB database row. Read here for more technical insight.
As Content Blocks uses the table
tt_content, it must be ensured, that the table does not grow indefinitely.
First, check if you are using the DYNAMIC row format. If not, alter your tables to use this format, in order to store more data on overflow pages.
ALTER TABLE tt_content ROW_FORMAT=DYNAMIC;
Else, here are some tips to save table row size:
- Reuse existing TYPO3 core and Content Blocks fields as much as possible.
- Try to minimize the usage of new Text, Link, Email, Radio, Color and Select fields. They all use
varchar(255), Link fields even use
- You can manually manipulate your YAML definitions using the property
alternativeSqland change the sql
text, as suggested here.
- If applicable, use Collections, as they create a new table.
- Otherwise consider creating an own extension with custom tables if your Content Blocks are getting too complex.
Read this mariadb troubleshooting guide for in depth explanation and more tips.