Назад | Перейти на главную страницу

Самая быстрая возможная настройка локальной базы данных MySQL, безопасность не требуется?

У нас есть локальная установка Optiplex на ПК для запуска нашей общей базы данных MySQL MariaDB без возможности доступа к ней из внешнего мира. В нем нет критических данных, которые нужно защищать.

По сути, не требуется безопасности, шифрования или администрирования. Какая самая быстрая конфигурация для нашей установки с точки зрения производительности?

Вот наша текущая конфигурация:

[mysqld]
max_connections=500
join_buffer_size = 2M
tmp_table_size = 24M
max_heap_table_size = 24M
query_cache_size = 256M
key_buffer=256M
key_buffer_size = 1332M
thread_cache_size = 4
table_cache = 500
table_open_cache = 96
innodb_buffer_pool_size = 27M
slow_query_log
local-infile=0
skip-name-resolve

Я запускаю Debian 10 на Optiplex 780, core2duo E8500 с 4 ГБ ОЗУ. Мои характеристики можно найти здесь! https://i.dell.com/sites/doccontent/shared-content/data-sheets/en/Documents/optiplex_780_tech_spec_sheet.pdf

Это зависит от того, сколько у вас оперативной памяти.

query_cache_size слишком большой. Не выделяйте более 50 миллионов. В большинство сервера лучше выключить.

key_buffer_size = 1332M
innodb_buffer_pool_size = 27M

Это подразумевает, что вы используете более медленный ENGINE = MyISAM.

Устарели:

key_buffer=256M
table_cache = 500

Невозможно обеспечить «максимально быстрое» без некоторых подсказок о том, на что похоже ваше приложение.

Обычно «медленный» сервер работает медленно из-за отсутствия индексов и / или плохо сформулированных запросов, не конфигурация.

Запустите в течение месяца, затем предоставьте данные, указанные Уилсоном. Кроме того, оставьте включенным медленный журнал, чтобы мы могли находить «медленные» запросы.

Большинство настроек, которые у вас есть, либо бессмысленны, либо совершенно контрпродуктивны.

Удалите их все. Убедитесь, что вы используете только InnoDB. Отрегулируйте размер innodb_buffer_pool до 50-80% вашей оперативной памяти (но не больше, чем ваши фактические данные). Добавьте innodb_file_per_table = 1. Все остальные настройки следует оставить в покое, если вы не знаете именно что вы делаете и меняете настройку по очень конкретной причине.

Игнорируйте все, что вам сообщает сценарий настройки MySQL.

Если вам не важна целостность данных в случае сбоя: innodb_doublewrite = 0 innodb_flush_logs_on_trx_commit = 0

Если вас не заботит целостность данных перед лицом неисправного оборудования: innodb_checksum = none

Существует множество скриптов, которые подключаются к вашему серверу MySQL, анализируют некоторые переменные и статистику производительности вашей работающей системы и предлагают изменения конфигурации. Самые известные из них https://github.com/major/MySQLTuner-perl и https://github.com/BMDan/tuning-primer.sh