Перенос директории MySQL

Когда-то я создавал рейд, монтировал его как раздел дисковой системы и переносил каталог MySQL прямо на него, но в этом случае были минусы, могла появится директория lost+found, его нельзя было использовать для других данных и т.д., после этого я стал переносить директорию MySQL не прямо на раздел, а создавал на нем директорию и переносил в нее.

Читать далее «Перенос директории MySQL»

Изменение innodb_io_capacity в MySQL

innodb_io_capacity — определяет количество IOPS на запись для фоновых задач InnoDB, например очистка страниц из пула буферов и т.д. Если операция очистки отстает, то InnoDB может более агрессивно выполнять очистку с более высокой скоростью IOPS, значение которой определено в переменной innodb_io_capacity_max.

Читать далее «Изменение innodb_io_capacity в MySQL»

Установка и настройка xt_NAT

Приведу пример установки и настройки xt_NAT в Ubuntu Server 14.04 с версией ядра 4.4.0-142. На новых версиях ядра xt_NAT может не работать. По словам разработчика должно работать на Linux Kernel 3.18 и 4.1. Чтобы работало на новых версиях ядра, можно найти патчи.

Читать далее «Установка и настройка xt_NAT»

Партиционирование таблиц в MySQL

Партиционирование таблиц в MySQL — это разбиение большой таблицы на части по указанным критериям, что позволит ускорить чтение и запись в нее данных, если эта таблица содержит очень большое количество данных.

Читать далее «Партиционирование таблиц в MySQL»

Как изменить innodb_stats_on_metadata в MySQL

innodb_stats_on_metadata — позволяет собирать статистику при операциях метаданных, например SHOW TABLE STATUS при доступе к таблицам INFORMATION_SCHEMA.TABLES или INFORMATION_SCHEMA.STATISTICS.
В новых версиях MySQL параметр innodb_stats_on_metadata отключен по умолчанию, что позволяет ускорить работу с этими таблицами.

Читать далее «Как изменить innodb_stats_on_metadata в MySQL»

Изменение thread_cache_size в MySQL

thread_cache_size — отвечает за кэширование потоков клиентов после того как они отключаются, чтобы их можно было повторно использовать, например когда к серверу выполняются сотни подключений в секунду, то этот параметр может очень сильно повысить производительность.

Читать далее «Изменение thread_cache_size в MySQL»

Изменение innodb_flush_log_at_trx_commit в MySQL

Значение по умолчанию 1, возможные значения 0-2.

0 — Журналы записываются и сбрасываются на диск один раз в секунду. Транзакции, журналы которых не были очищены, могут быть потеряны в результате сбоя.
1 — Журналы записываются и сбрасываются на диск при каждой фиксации транзакции.
2 — Журналы записываются после каждой фиксации транзакции и сбрасываются на диск один раз в секунду. Транзакции, журналы которых не были очищены, могут быть потеряны в случае сбоя.

Читать далее «Изменение innodb_flush_log_at_trx_commit в MySQL»

Как изменить innodb_read_io_threads в MySQL

Приведу пример изменения innodb_read_io_threads в MySQL.
Значение innodb_read_io_threads определяет количество потоков ввода-вывода для операций чтения в InnoDB. Значение по умолчанию 4, минимально возможное 1, максимальное 64.

Читать далее «Как изменить innodb_read_io_threads в MySQL»

Как изменить innodb_write_io_threads в MySQL

Приведу пример изменения innodb_write_io_threads в MySQL.
Значение innodb_write_io_threads определяет количество потоков ввода-вывода для операций записи в InnoDB. Значение по умолчанию 4, минимально возможное 1, максимальное 64.

Читать далее «Как изменить innodb_write_io_threads в MySQL»

Как изменить innodb_thread_concurrency в MySQL

Приведу пример изменения innodb_thread_concurrency в MySQL.
Так как InnoDB использует потоки операционной системы для обработки пользовательских транзакций, то параметр innodb_thread_concurrency позволяет ограничить их. По умолчанию в новых версиях MySQL значение равно 0, это означает что нет ограничения на количество одновременно выполняемых потоков и это является правильным для современных серверов. Если же вы хотите ограничить, то при достижении лимита лишние потоки будут ожидать определенное количество микросекунд указанное в параметре innodb_thread_sleep_delay, а потом попытаются попасть в очередь. Также в MySQL 5.6.3 и выше добавлен параметр innodb_adaptive_max_sleep_delay который позволяет указать максимальное количество микросекунд для параметра innodb_thread_sleep_delay и тогда InnoDB автоматически регулирует innodb_thread_sleep_delay.

Читать далее «Как изменить innodb_thread_concurrency в MySQL»