Форумы / National / Russian / какую нагрузку держит Cotonti

Вопрос к пользователям

Trustmaster
#27650 27.12.2010 20:25
Я тоже отношусь к этим некоторым иногда. Если рассмотреть кратко вопрос InnoDB vs. MyISAM, то:
  • InnoDB надёжнее на больших нагрузках. То есть там, где MyISAM уже падает, InnoDB потихоньку продолжает тянуть запросы.
  • У MyISAM быстрее выполняются SELECT, у InnoDB эффективнее INSERT/UPDATE/DELETE из-за того, что MyISAM лочит всю таблицу, а InnoDB только изменяемую часть.

Оценить, стоит ли переходить на InnoDB, довольно просто. Включаете debug mode, чтобы в подвале отображалась подробная статистика по запросам и смотрите, что к чему. Если внушительную часть времени движок тратит на обновление таблиц, а не выборку из них, значит стоит переходить на InnoDB.

Например, на одном сайте страницы иногда генерились по 3-5 секунд. Как оказалось, 90% времени движок пытался обновить данные в таблицах sed_online, sed_users и sed_cache. Отключение внутренней статистики и переход на InnoDB позволил вернуть время генерации обратно в пределы десятых долей секунды.

Но помните, InnoDB не поддерживает полнотекстовый поиск. Similar pages и сходные плагины с такими таблицами работать не будут.

Резюме: если сайт начал тормозить, причём в основном БД, то переведите в InnoDB часто изменяемые таблицы (вроде sed_online, sed_users, sed_cache, sed_config), а редкоизменяемые (например, sed_pages) оставьте на MyISAM.
May the Source be with you!
Отредактировано: Trustmaster (27.12.2010 20:31, 14 лет назад)