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.