Rechercher dans le manuel MySQL
15.22 InnoDB Limits
This section describes limits for InnoDB
tables, indexes, tablespaces, and other aspects of the
InnoDB
storage engine.
A table can contain a maximum of 1017 columns. Virtual generated columns are included in this limit.
A table can contain a maximum of 64 secondary indexes.
The index key prefix length limit is 3072 bytes for
InnoDB
tables that useDYNAMIC
orCOMPRESSED
row format.The index key prefix length limit is 767 bytes for
InnoDB
tables that use theREDUNDANT
orCOMPACT
row format. For example, you might hit this limit with a column prefix index of more than 191 characters on aTEXT
orVARCHAR
column, assuming autf8mb4
character set and the maximum of 4 bytes for each character.Attempting to use an index key prefix length that exceeds the limit returns an error.
If you reduce the
InnoDB
page size to 8KB or 4KB by specifying theinnodb_page_size
option when creating the MySQL instance, the maximum length of the index key is lowered proportionally, based on the limit of 3072 bytes for a 16KB page size. That is, the maximum index key length is 1536 bytes when the page size is 8KB, and 768 bytes when the page size is 4KB.The limits that apply to index key prefixes also apply to full-column index keys.
A maximum of 16 columns is permitted for multicolumn indexes. Exceeding the limit returns an error.
The maximum row size, excluding any variable-length columns that are stored off-page, is slightly less than half of a page for 4KB, 8KB, 16KB, and 32KB page sizes. For example, the maximum row size for the default
innodb_page_size
of 16KB is about 8000 bytes. However, for anInnoDB
page size of 64KB, the maximum row size is approximately 16000 bytes.LONGBLOB
andLONGTEXT
columns must be less than 4GB, and the total row size, includingBLOB
andTEXT
columns, must be less than 4GB.If a row is less than half a page long, all of it is stored locally within the page. If it exceeds half a page, variable-length columns are chosen for external off-page storage until the row fits within half a page, as described in Section 15.11.2, “File Space Management”.
Although
InnoDB
supports row sizes larger than 65,535 bytes internally, MySQL itself imposes a row-size limit of 65,535 for the combined size of all columns. See Section 8.4.7, “Limits on Table Column Count and Row Size”.On some older operating systems, files must be less than 2GB. This is not an
InnoDB
limitation. If you require a large system tablespace, configure it using several smaller data files rather than one large data file, or distribute table data across file-per-table and general tablespace data files.The combined maximum size for
InnoDB
log files is 512GB.The minimum tablespace size is slightly larger than 10MB. The maximum tablespace size depends on the
InnoDB
page size.Table 15.31 InnoDB Maximum Tablespace Size
InnoDB Page Size Maximum Tablespace Size 4KB 16TB 8KB 32TB 16KB 64TB 32KB 128TB 64KB 256TB The maximum tablespace size is also the maximum size for a table.
The path of a tablespace file, including the file name, cannot exceed the
MAX_PATH
limit on Windows. Prior to Windows 10, theMAX_PATH
limit is 260 characters. As of Windows 10, version 1607,MAX_PATH
limitations are removed from common Win32 file and directory functions, but you must enable the new behavior.For limits associated with concurrent read-write transactions, see Section 15.6.6, “Undo Logs”.
Nederlandse vertaling
U hebt gevraagd om deze site in het Nederlands te bezoeken. Voor nu wordt alleen de interface vertaald, maar nog niet alle inhoud.Als je me wilt helpen met vertalingen, is je bijdrage welkom. Het enige dat u hoeft te doen, is u op de site registreren en mij een bericht sturen waarin u wordt gevraagd om u toe te voegen aan de groep vertalers, zodat u de gewenste pagina's kunt vertalen. Een link onderaan elke vertaalde pagina geeft aan dat u de vertaler bent en heeft een link naar uw profiel.
Bij voorbaat dank.
Document heeft de 26/06/2006 gemaakt, de laatste keer de 26/10/2018 gewijzigd
Bron van het afgedrukte document:https://www.gaudry.be/nl/mysql-rf-innodb-limits.html
De infobrol is een persoonlijke site waarvan de inhoud uitsluitend mijn verantwoordelijkheid is. De tekst is beschikbaar onder CreativeCommons-licentie (BY-NC-SA). Meer info op de gebruiksvoorwaarden en de auteur.
Referenties
Deze verwijzingen en links verwijzen naar documenten die geraadpleegd zijn tijdens het schrijven van deze pagina, of die aanvullende informatie kunnen geven, maar de auteurs van deze bronnen kunnen niet verantwoordelijk worden gehouden voor de inhoud van deze pagina.
De auteur Deze site is als enige verantwoordelijk voor de manier waarop de verschillende concepten, en de vrijheden die met de referentiewerken worden genomen, hier worden gepresenteerd. Vergeet niet dat u meerdere broninformatie moet doorgeven om het risico op fouten te verkleinen.