Mysql Scaling для небольших приложений - PullRequest
2 голосов
/ 28 марта 2011

Я не могу купить больше оборудования.У меня есть 2 ГБ оперативной памяти для MySQL.

Теперь мой виджет отображается на 57 веб-сайтах с 3000 просмотров в среднем.Мой виджет требует 200 вставок на просмотр для лучшей пользовательской оптимизации контента.это означает, что в среднем почти 400 вставок в секунду.

Теперь, что вы предлагаете мне сделать, чтобы ускорить вставки.Вставленные данные разделены на три таблицы, две из которых получают по 80 каждая, а последняя получает 40 вставок.

Я использую MYISAM, мне не нравится INNODB, потому что я никогда не использовал его, и я не чувствую себя комфортноиспользуя это прямо сейчас, но веская причина может убедить меня.Проблема в том, что в пиковые моменты времени около 1200 вставок в секунду, что является реальным узким местом.

В основном запросы - это обновления, чтобы увеличить количество показов.Поэтому обновите показы = показы + 1, где widget = widget_id

Любые предложения по ускорению запросов к базе данных будут фантастическими.

Также может быть кэш для вставок, например, для выполнения вставок впартия.Что-то вроде того.Своевременные вставки, массовые вставки и т. Д. Кстати, я был бы очень признателен, если бы это можно было объяснить в деталях, поскольку я полный нуб.

Спасибо, ребята

1 Ответ

7 голосов
/ 28 марта 2011

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

Вам также следует прочитать документы MySQL и статьи на MySQL Performance Blog , чтобы получить советы по оптимальной настройке MySQL в отношении буферов и других параметров конфигурации.

MySQL Tuner также может помочь выяснить, что вам действительно нужно. Он будет отображать статистику, такую ​​как процент вставок и процент выборок, сколько памяти используется для различных буферов, как работает кэш запросов и т. Д. В нем также даются советы о том, что нужно откорректировать, чтобы улучшить эти вещи, хотя эти советы должны быть взяты с небольшим количеством соли и исследованы, прежде чем вы действительно сделаете это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...