Сколько памяти расходует MySQL?

Приблизительное значение можно рассчитать исходя из того что сервер БД использует глобальные буферы и буферы на каждое соединение.
За глобальные буферы отвечают следующие параметры:

key_buffer_size — объем памяти, который выделяется mysqld для кеша индексов.
max_heap_table_size — максимальный размер временных таблиц создаваемых в памяти.
innodb_buffer_pool_size — размер буфера памяти, который InnoDB использует для кэширования данных и индексов своих таблиц. Рекомендуется устанавливать на процентов 10 больше чем размер ваших таблиц InnoDB.
innodb_additional_mem_pool_size — размер пула памяти, который InnoDB использует для хранения информации словаря данных и других внутренних структур данных.
innodb_log_buffer_size — размер буфера, который в InnoDB используется для записи информации файлов журналов на диск.
query_cache_size — кеш запросов MySQL.
Буферы выделяемые на каждое подключение:
read_buffer_size — размер буфера, выделяемого потоком для каждой сканируемой таблицы. лучший размер — 128K, больше ставить чаще всего нет смысла.
read_rnd_buffer_size — размер буфера, выделяемого для чтения строк после сортировки, что-бы избежать повторного поиска на диске.
sort_buffer_size — размер буфера, выделяемого на поток при выполнении операций сортировки.
thread_stack — задает размер стека для каждого потока.
join_buffer_size — размер буфера использующегося при операциях объединения таблиц ( если не используются индексы )

Поэтому итоговая формула будет приблизительно такой:
Сумма глобальных буферов + N*(сумма буферов выделяемых на каждое подключение)
где N — max_connections — Максимальное количество подключений.
Для выделенных под серверы БД mysql можно выделять 90-95% памяти. Для серверов на которых установлены и другие службы необходимо учитывать и их расход, например 1 ГБ ОЗУ = под систему 80, под mysql — 500, web -серверу оставляем 400.
Следует отметить что не бывает универсальных решений, необходимо тестировать каждый параметр и учитывать его вклад в производительность, для достижения максимального быстродействия.

Полезные ссылки:
http://mysql.ru/docs/man/InnoDB_start.html

Вы можете оставить комментарий, или ссылку на Ваш сайт.

Оставить комментарий