my.cnf MySQL производительность для таблицы MYISAM 5 ГБ
У меня есть выделенный сервер - Intel Xeon L5320 с 8 ГБ оперативной памяти и 2 х 500 ГБ 7200RMP HDD
Мне нужно оптимизировать MySQL, чтобы справиться с большой таблицей MyISAM 5 Гбит + около 25 - 30 небольших баз данных, в настоящее время это выглядит так:
key_buffer = 3G
thread_cache_size = 16
table_cache = 8192
query_cache_size = 512M
Поскольку сервер действительно испытывает трудности, и я продолжаю получать предупреждения о заполнении диска tmp, не могли бы вы мне помочь / предложить лучшую конфигурацию my.cnf для моего сервера и / или любые другие изменения настроек, которые могли бы повысить производительность.
заранее спасибо
2 ответа
Я рекомендую использовать mytop и mysqltuner для анализа с использованием ресурсов mysql (RAM и CPU).
Также включите опцию для регистрации медленных запросов:
log_slow_queries = /var/log/mysql/mysql-slow.log
long_query_time = 3
И проверьте этот пост о сервисе ntpd:
MySQL высокая загрузка процессора
Наконец, я оставляю вас в ситуации, когда у меня есть выделенный сервер для высокой скорости транзакций.
max_allowed_packet=16M
key_buffer_size=8M
innodb_additional_mem_pool_size=10M
innodb_buffer_pool_size=512M
join_buffer_size=40M
table_open_cache=1024
query_cache_size=40M
table_definition_cache=256
innodb_additional_mem_pool_size=10M
key_buffer_size=16M
max_allowed_packet=32M
max_connections = 300
query_cache_limit = 10M
log_slow_queries = /var/log/mysql/mysql-slow.log
long_query_time = 3
Привет.
Если /tmp
заполняется, вы выполняете несколько больших, неэффективных запросов, которые возвращаются к FILESORT. Хорошо написанные, эффективные запросы обычно не нуждаются в этом - включите медленное ведение журнала запросов (если это еще не сделано) и проверьте журнал, чтобы увидеть, что нуждается в оптимизации.