Поиск…


замечания

Конфигурация происходит одним из трех способов:

  • параметры командной строки
  • файл конфигурации my.cnf
  • установка переменных изнутри сервера

mysqld --long-parameter-name=value --another-parameter командной строки принимают форму mysqld --long-parameter-name=value --another-parameter . Те же параметры можно поместить в my.conf конфигурации my.conf . Некоторые параметры настраиваются с использованием системных переменных из MySQL. Ознакомьтесь с официальной документацией для полного списка параметров.

Переменные могут иметь тире - или подчеркивание _ . Пространства могут существовать вокруг = . Большие числа могут быть суффиксами K , M , G для кило-, мега- и гига-. Одна настройка для каждой строки.

Флаги: Обычно ON и 1 являются синонимами, а для OFF и 0 . Некоторые флаги ничего не имеют после них.

При размещении настроек в my.cnf все настройки для сервера должны находиться в разделе [mysqld] , поэтому не слепо добавлять настройки в конец файла. (Примечание. Для инструментов, которые позволяют нескольким экземплярам mysql делиться одним my.cnf, имена разделов могут отличаться.)

Производительность InnoDB

Есть сотни настроек, которые можно поместить в my.cnf. Для пользователя Lite MySQL MySQL не имеет значения.

Когда ваша база данных становится нетривиальной, рекомендуется установить следующие параметры:

innodb_buffer_pool_size

Это должно быть установлено около 70% доступной ОЗУ (если у вас есть как минимум 4 ГБ ОЗУ, меньший процент, если у вас есть крошечная виртуальная машина или антикварная машина). Параметр управляет количеством кеша, используемого двигателем InnoDB. Следовательно, это очень важно для производительности InnoDB.

Параметр, позволяющий вставлять огромные данные

Если вам нужно сохранить изображения или видео в столбце, нам нужно изменить значение по мере необходимости вашим приложением

max_allowed_packet = 10M

M является Mb, G в Gb, K в Kb

Увеличьте ограничение строки для group_concat

group_concat используется для конкатенации ненулевых значений в group . Максимальная длина результирующей строки может быть задана с помощью параметра group_concat_max_len :

SET [GLOBAL | SESSION] group_concat_max_len = val;

Установка переменной GLOBAL обеспечит постоянное изменение, тогда как установка переменной SESSION установит значение для текущего сеанса.

Минимальная конфигурация InnoDB

Это минимальная настройка для серверов MySQL с использованием таблиц InnoDB. Используя InnoDB, кеш запросов не требуется. Исправьте дисковое пространство , когда таблица или база данных DROP - е изд. Если вы используете SSD, то промывка является избыточной операцией (SDD не являются последовательными).

default_storage_engine = InnoDB
query_cache_type = 0
innodb_file_per_table = 1
innodb_flush_neighbors = 0

совпадение

Удостоверьтесь, что мы можем создать более чем по умолчанию 4 потока, установив innodb_thread_concurrency в бесконечность (0); это позволяет InnoDB решать на основе оптимального исполнения.

innodb_thread_concurrency = 0
innodb_read_io_threads = 64
innodb_write_io_threads = 64

Использование жесткого диска

Задайте емкость (нормальная нагрузка) и capacity_max (абсолютный максимум) IOPS для MySQL. Значение по умолчанию 200 отлично подходит для жестких дисков, но в наши дни с SSD, способными к тысячам IOPS, вы, вероятно, захотите настроить этот номер. Для определения IOPS существует множество тестов. Значения выше должны быть почти такими, если вы используете выделенный сервер MySQL . Если вы используете какие-либо другие службы на одном компьютере, вы должны распределить их по мере необходимости.

innodb_io_capacity = 2500
innodb_io_capacity_max = 3000

Использование ОЗУ

Установите RAM для MySQL. Хотя эмпирическое правило составляет 70-80%, это действительно зависит от того, предназначен ли ваш экземпляр для MySQL, и сколько оперативной памяти доступно. Не теряйте RAM (т.е. ресурсы), если у вас есть много доступных.

innodb_buffer_pool_size = 10G

Безопасное шифрование MySQL

Шифрование по умолчанию aes-128-ecb использует aes-128-ecb электронной кодовой книги (ECB), который является небезопасным и никогда не должен использоваться. Вместо этого добавьте в конфигурационный файл следующее:

block_encryption_mode = aes-256-cbc


Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow