Сколько могут обработать базы данных MySQL?

Мой сервер MySql в настоящее время имеет 235 баз данных. Я должен волноваться? У них всех есть та же структура с таблицами MyISAM.

Аппаратные средства являются виртуальной машиной с RAM на 2 ГБ, работающей на Четырехъядерном AMD Opteron 2.2GHz.

Недавно cPanel послал мне электронное письмо, говоря, что MySql перестал работать, и перезапуск был сделан.

Новые базы данных, как ожидают, будут созданы, и интересно, должен ли я добавить больше памяти или если я должен просто добавить другую виртуальную машину.

8
задан Robert Koritnik 21 June 2010 в 20:36
поделиться

4 ответа

"Базы данных" в mysql на самом деле являются каталогами, на их пределы не влияет, помещаете ли вы все таблицы в одну или каждую в свою.

Основная проблема - это кэш таблиц. Не настроив его, вы будете иметь кэш таблиц по умолчанию (=64 обычно), что означает, что вы будете закрывать таблицу каждый раз, когда открываете ее. Это невероятно плохо.

Только в MyISAM это еще хуже, потому что при закрытии таблицы ключевые блоки выбрасываются из кэша ключей, что означает, что последующие поиски индекса или сканирование будут считывать фактические блоки с диска, что ужасно и медленно, и этого действительно нужно избегать.

Мой совет:

  • Если возможно, немедленно увеличьте кэш таблиц до > общего числа таблиц
  • Следите за глобальной переменной состояния Opened_Tables в вашем мониторинге; если она быстро увеличивается, это плохо.
  • Проведите тестирование производительности и надежности на том же оборудовании в непроизводственной среде (если вы еще не делаете этого).
7
ответ дан 5 December 2019 в 20:13
поделиться

(репост моего комментария для большей наглядности) Спасибо всем за ваши комментарии. Система в чем-то похожа на Google Analytics. Посещения веб-сайта пользователями регистрируются в «главной» таблице. Собственное приложение отслеживает главную таблицу, обрабатывает зарегистрированные посещения и записывает их в базу данных пользователей. У каждого пользователя своя БД. Это было решено для шардинга. Для каждого пользователя ведутся различные отчеты и статистика. И это быстрее, если он работает только с определенной БД (меньше данных). Я знаю, что это не лучшая установка. Но нам нужно какое-то время с этим разобраться.

1
ответ дан 5 December 2019 в 20:13
поделиться

Вы делаете это неправильно.

Прокомментируйте с некоторыми особенностями ваших баз данных, и мы, вероятно, сможем сообщить вам, где ваш дизайн пошел не так, как надо.

0
ответ дан 5 December 2019 в 20:13
поделиться

Я не верю, что существует жесткое ограничение, единственное, что действительно ограничивает вас, - это ваше оборудование и трафик, который будут получать эти базы данных.

Похоже, у вас очень мало памяти, что, вероятно, означает, что у вас нет большого количества подключений ...

Вам следует начать с профилирования использования для каждой базы данных (или набора баз данных, в зависимости от того, как они используются, конечно ).

Мое предложение - MySQL (или любой другой сервер баз данных в этом отношении) мог бы использовать больше памяти. Тебе никогда не бывает достаточно.

0
ответ дан 5 December 2019 в 20:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: