Настройки сервера mysql храняться в файле /etc/mysql/my.cnf. Установленный по умолчанию my.cnf рассчитан на совсем музейные машины, главное чтоб mysql завелась.
в комплекте установки поставляются и другие файлы, рассчитанные на более современные машины.
что нужно сделать:
1 переименовать дефолтный my.cnf
2 скопировать из папки /usr/share/doc/mysql-server-5.5/examples/ файл my-innodb-heavy-4G.cnf в /etc/mysql/ и переименовываем его в my.cnf
3 service mysql restart
как правило, этого достаточно для значительного ускорения работы базы данных
что можно еще сделать в этом файле:
1. раскомментировать skip-networking - таким образом мы запретим внешние подключения к БД
2 редактируем значение thread_concurrency
thread_concurrency = (кол-во процессоров)*(кол-во ядер в одном процессоре)*3
3 key_buffer=1024M – размер буфера, используемого для блоков индексов. Чтобы улучшить обработку индексов (для всех операций чтения и записи нескольких элементов), необходимо увеличить это значение настолько, насколько возможно. Рекомендуется выставлять это значение от 15% до 25% ОЗУ, чтобы система не начала сохранять временные файлы на диске, что значительно снизит производительность.
4 sort_buffer=128M – Каждый поток, которому необходимо произвести сортировку, выделяет буфер данного размера. Увеличение данного значения позволит ускорить выполнение операторов ORDER BY или GROUP BY. “Увлекаться” большим значением не стоит, а посчитать его можно исходя из среднего значения открытых потоков (Threads_running) и кол-ва ОЗУ сервера.
mysql> show status LIKE "Threads_running%";
5 myisam_sort_buffer_size=512М – Буфер, который выделяется для сортировки индексов при выполнении команды REPAIR или для создания индексов при помощи команд CREATE INDEX или ALTER TABLE. Рекомендуется не жадничать …
6 innodb_flush_log_at_trx_commit = 2 - Значение по умолчанию «1» означает, что каждая UPDATE-транзакция (или аналогичная команда вне транзакции) должна сбрасывать буфер на диск, что достаточно ресурсоёмко. Большинство приложений, в особенности ранее использовавшие таблицы MyISAM, будут хорошо работать со значением «2» (т.е. «не сбрасывать буфер на диск, только в кэш ОС»). Лог, однако, всё равно будет сбрасываться на диск каждые 1-2 секунды, поэтому в случае аварии Вы потеряете максимум 1-2 секунды обновлений. Значение «0» повысит производительность, но Вы рискуете потерять данные даже при аварийной остановке mySQL-сервера, в то время как при установке значение innodb_flush_log_at_trx_commit в «2» Вы потеряете данные только при аварии всей операционной системы.
для вступления новых настроек в силу опять же service mysql restart