Spec-Zone.ru › MySQL 5.7

8.5.4 Оптимизация журналирования InnoDB

Рассмотрите следующие рекомендации по оптимизации журналирования:

  • Делайте файлы журнала redo большими, даже такими же большими, как . Когда InnoDB заполнит файлы журнала redo, он должен записать изменённое содержимое буфера пула на диск в . Маленькие файлы журнала redo приводят к множеству ненужных операций записи на диск. Хотя исторически большие файлы журнала redo приводили к длительным временам восстановления, восстановление сейчас намного быстрее, и вы можете уверенно использовать большие файлы журнала redo.

    Размер и количество файлов журнала redo настраиваются с помощью параметров конфигурации innodb_log_file_size и innodb_log_files_in_group. Дополнительную информацию о модификации существующей конфигурации файла журнала redo см. в разделе Изменение количества или размера файлов журнала InnoDB redo.

  • Подумайте об увеличении размера . Большой буфер журнала позволяет выполнять большие операции без необходимости записи журнала на диск до завершения транзакций . Таким образом, если у вас есть транзакции, которые обновляют, вставляют или удаляют много строк, увеличение размера буфера журнала экономит операции ввода-вывода на диск. Размер буфера журнала настраивается с помощью параметра конфигурации innodb_log_buffer_size.

  • Настройте параметр конфигурации innodb_log_write_ahead_size, чтобы избежать “чтения при записи”. Этот параметр определяет размер блока предварительной записи для журнала redo. Установите innodb_log_write_ahead_size в соответствии с размером блока кэша операционной системы или файловой системы. Чтение при записи происходит, когда блоки журнала redo не полностью кэшируются в операционной системе или файловой системе из-за несоответствия между размером блока предварительной записи для журнала redo и размером блока кэша операционной системы или файловой системы.

    Допустимые значения для innodb_log_write_ahead_size — кратные размеру блока файла журнала InnoDB (2n). Минимальное значение — размер блока файла журнала InnoDB (512). Предварительная запись не происходит, когда указано минимальное значение. Максимальное значение равно значению innodb_page_size. Если вы укажете для innodb_log_write_ahead_size значение, большее, чем значение innodb_page_size, значение innodb_log_write_ahead_size усекается до значения innodb_page_size.

    Установка значения innodb_log_write_ahead_size слишком низкой относительно размера блока кэша операционной системы или файловой системы приводит к чтению при записи. Установка слишком большого значения может незначительно повлиять на производительность fsync при записи файлов журнала из-за одновременной записи нескольких блоков.

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-5.7-en/optimizing-innodb-logging.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API