Конфигурации сервера для размещения базы данных MySQL

Конфигурации сервера для размещения базы данных MySQL

У меня есть веб-приложение, которое использует базу данных MySQL, размещенную на виртуальном сервере. Я использовал этот сервер, когда запускал приложение, и когда база данных была совсем маленькой. Теперь она выросла, и сервер не может справиться с базой данных, что приводит к частым ошибкам в базе данных. Я планирую получить сервер, и мне нужны предложения по этому поводу.
Как я уже сказал, база данных теперь имеет размер 9 ГБ и растет довольно быстро. Есть несколько таблиц с миллионами строк, которые часто обновляются и запрашиваются. Самая частая ошибка, которую показывает база данных, это Lock wait timeout exceeded. Раньше также возникали ошибки «Общее количество блокировок превышает размер таблицы блокировок», но я мог бы избежать этого, увеличив размер буферного пула Innodb.
Пожалуйста, посоветуйте, какие конфигурации мне следует искать в сервере, который мне следует купить. Я где-то читал, что в идеале база данных должна иметь размер буферного пула больше размера ее данных, поэтому в моем случае, я полагаю, мне понадобится память > 9 ГБ. На что еще мне следует обратить внимание в сервере?

Просто скажите мне, стоит ли мне дать вам больше информации о

решение1

Вы можете использовать скрипт Perl под названиемMySQLTunerчтобы получить некоторые идеи переменных для настройки, и, таким образом, оборудования для обновления, если это необходимо.
Однако вы должны понимать настройки, прежде чем изменять их, иначе вы рискуете усугубить проблему.

В самом сценарии содержится очень содержательный совет:

*ПРЕДУПРЕЖДЕНИЕ.
Крайне важно полностью понимать каждое изменение, которое вы вносите в сервер базы данных MySQL. Если вы не понимаете части выходных данных скрипта или не понимаете рекомендации, вам следует проконсультироваться со знающим DBA или даже системным администратором, которому вы доверяете. Всегда проверяйте свои изменения в промежуточных средах и всегда помните, что улучшения в одной области могут негативно повлиять на MySQL в других областях.
*ПРЕДУПРЕЖДЕНИЕ.

Вы найдете замечательные статьи на эту тему на Percona'sБлог о производительности MySQL, асписок книгзанимающихся этой темой и даже скринкаст на ихpercona.tvВеб-сайт.

решение2

Вы проверили блокировку ожидания?

Это можно сделать, активировав монитор блокировки InnoDB:

СОЗДАТЬ ТАБЛИЦУ innodb_lock_monitor(a int) ENGINE=INNODB;

Затем просмотрите журнал ошибок MySQL.

Чтобы отключить монитор, уроните таблицу.

НТН

Связанный контент