Улучшит ли переход на InnoDB из MyISAM производительность таблицы комментариев?


Сайт, который я создал, получает много комментариев за короткий промежуток времени - так что, возможно, 100 комментариев можно оставить за 5 или 10 минут.

Это, похоже, вызывает довольно большую нагрузку на базу данных, особенно в сочетании с недавними виджетами комментариев - я видел, как загрузка сервера быстро возрастает до 40+, и с помощью mtop я вижу множество заблокированных запросов.

Итак, я использую MyISAM в качестве механизма хранения, который блокирует всю таблицу для записи. Будет ли переключение на InnoDB, который (я полагаю) использует блокировку строк, улучшает ситуацию? Глядя на документы MySQL, кажется вполне возможным использовать оба движка в одной базе данных.

Итак, вопрос:

Кажется ли переключение на InnoDB разумным решением для того, что я описал? Какой-либо конкретный опыт/контрольные показатели WP?

Author: MathSmath, 2011-01-10

1 answers

MyISAM блокирует всю страницу для записи и не соответствует требованиям ACID, в то время как InnoDB придерживается блокировки строк, как вы указываете, и соответствует требованиям ACID.

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

По моему опыту, это медленнее для чтения, хотя он лучше обрабатывает параллельные соединения.

Это также загромождает каталог. (Однажды у меня была большая база данных, которую я переключил на InnoDB из MyISAM, и каталог раздулся на 2 ГБ, или размер моей БД, по причинам, которые я никогда не понимал, хотя я подозреваю, что это связано с временными данными, такими как создание индекса и тому подобное, Которые не были сброшены должным образом.)

В любом случае... С вашей текущей нагрузкой InnoDB является опцией, как и memcached вместе с кэшем объектов.

 4
Author: Denis de Bernardy, 2011-01-11 10:11:41