У меня в свое время после нескольких дней оптимизации по каждому параметру для MyISAM на средненагруженном сервере в итоге вышел такой конфиг (по возможности убрано всё лишнее и оставлены лишь необходимые мне настройки):
[mysqld] default-storage-engine=MyISAM innodb=OFF skip-symbolic-links skip-networking skip-name-resolve skip-federated bind-address = 127.0.0.1 max_connect_errors = 1K max_join_size=200M max_allowed_packet=16M key_buffer_size=128M query_cache_size = 256M max_heap_table_size=256M tmp_table_size=256M max_connections = 160 thread_cache_size = 160 read_buffer_size = 128K read_rnd_buffer_size = 256K join_buffer_size = 256K sort_buffer_size = 128K myisam_sort_buffer_size = 512M table_open_cache = 1K interactive_timeout = 60 wait_timeout = 60 connect_timeout =20 character-set-server=utf8 collation-server=utf8_general_ci log_slow_queries = 1 slow_query_log_file = /var/log/mysql-bin.log long_query_time = 4
Подробности: 1) Ставим MyISAM по умолчанию и отключаем ненужные нам вещи: default-storage-engine=MyISAM innodb=OFF skip-symbolic-links skip-networking skip-name-resolve skip-federated
2) Привязываем базу для использования только на нашем сервере: bind-address = 127.0.0.1
3) Выставляем необходимые максимальные ограничения: maxconnecterrors = 1K maxjoinsize=200M maxallowedpacket=16M
4) Устанавливаем общий буфер, кэш для запросов и max размер для временных таблиц: keybuffersize=128M querycachesize = 256M maxheaptablesize=256M tmptable_size=256M
5) Максимальное число соединений к базе и ожидающих их процессов: maxconnections = 160 threadcache_size = 160
6) Буферы на каждый процесс (большие значения типа 1Mb и выше для нас это явно перебор). readbuffersize = 128K readrndbuffersize = 256K joinbuffersize = 256K sortbuffer_size = 128K
7) Служебный сортировочный буфер (память постоянно не занимает) и кэш открытых таблиц. myisamsortbuffersize = 512M tableopen_cache = 1K
8) Необходимые таймауты, чтобы отсекать долгие ожидания. interactivetimeout = 60 waittimeout = 60 connect_timeout =20
9) Установка кодировки UTF8: character-set-server=utf8 collation-server=utf8generalci
10) По желанию можно добавить логи медленных запросов или неиспользуемых индексов (создайте доступным на запись файл для лога). logslowqueries = 1 slowquerylogfile = /var/log/mysql-bin.log longquery_time = 4 log-queries-not-using-indexes
Быстрой Вам базы данных!