Rechercher dans le manuel MySQL
15.12.3 Online DDL Space Requirements
Space requirements for in-place online DDL operations are outlined below. Space requirements do not apply to operations that are performed instantly.
Space for temporary log files
A temporary log file records concurrent DML when an online DDL operation creates an index or alters a table. The temporary log file is extended as required by the value of
innodb_sort_buffer_size
up to a maximum specified byinnodb_online_alter_log_max_size
. If a temporary log file exceeds the size limit, the online DDL operation fails, and uncommitted concurrent DML operations are rolled back. A largeinnodb_online_alter_log_max_size
setting permits more DML during an online DDL operation, but it also extends the period of time at the end of the DDL operation when the table is locked to apply logged DML.If the operation takes a long time and concurrent DML modifies the table so much that the size of the temporary log file exceeds the value of
innodb_online_alter_log_max_size
, the online DDL operation fails with aDB_ONLINE_LOG_TOO_BIG
error.Space for temporary sort files
Online DDL operations that rebuild the table write temporary sort files to the MySQL temporary directory (
$TMPDIR
on Unix,%TEMP%
on Windows, or the directory specified by--tmpdir
) during index creation. Temporary sort files are not created in the directory that contains the original table. Each temporary sort file is large enough to hold all secondary index columns plus the primary key columns of the clustered index. Temporary sort files are removed as soon as their contents are merged into the final table or index. Temporary sort files may require space equal to the amount of data in the table plus indexes. An online DDL operation that rebuilds the table reports an error if it uses all of the available disk space on the file system where the data directory resides.If the MySQL temporary directory is not large enough to hold the sort files, set
tmpdir
to a different directory. Alternatively, define a separate temporary directory for online DDL operations usinginnodb_tmpdir
. This option was introduced to help avoid temporary directory overflows that could occur as a result of large temporary sort files.Space for an intermediate table file
Some online DDL operations that rebuild the table create a temporary intermediate table file in the same directory as the original table. An intermediate table file may require space equal to the size of the original table. Intermediate table file names begin with
#sql-ib
prefix and only appear briefly during the online DDL operation.The
innodb_tmpdir
option is not applicable to intermediate table files.
Document created the 26/06/2006, last modified the 26/10/2018
Source of the printed document:https://www.gaudry.be/en/mysql-rf-innodb-online-ddl-space-requirements.html
The infobrol is a personal site whose content is my sole responsibility. The text is available under CreativeCommons license (BY-NC-SA). More info on the terms of use and the author.
References
These references and links indicate documents consulted during the writing of this page, or which may provide additional information, but the authors of these sources can not be held responsible for the content of this page.
The author This site is solely responsible for the way in which the various concepts, and the freedoms that are taken with the reference works, are presented here. Remember that you must cross multiple source information to reduce the risk of errors.