InnoDB против MyISAM для большого стола Wordpress блог - PullRequest
3 голосов
/ 25 февраля 2011

Привет
я знаю, что этот вопрос обсуждался много раз.
Но у меня есть конкретный вопрос с большой таблицей в блоге WordPress.
У меня около 50 тыс. Постов с тегом более 100 тыс.
При поиске требуется много памяти и ресурсов процессора.
В настоящее время я использую MyISAM для wp_posts и wp_posts_meta.
Так что я хотел бы узнать ваше мнение, я должен изменить его на InnoDB?

Хост блогов WordPress на моем vps с 2 ГБ ОЗУ и 4-х ядерным процессором с использованием CentOS 5. И я попытался оптимизировать конфигурацию MySQL плюс с помощью плагина кеша базы данных.

Так InnoDB решит мою проблему? И, пожалуйста, прости меня, если об этом спрашивали раньше. Я просто хочу узнать ваше мнение эксперта.

Спасибо

Иван

Ответы [ 3 ]

3 голосов
/ 25 февраля 2011

Очистка записей и редакций страниц значительно уменьшит размер базы данных WP - до 90% в некоторых случаях - с огромной отдачей в скорости.

Запускать как SQL-запрос в phpmyadmin для удаления ревизий; при необходимости измените префикс таблицы:

DELETE a,b,c FROM wp_posts a LEFT JOIN wp_term_relationships b ON (a.ID = b.object_id) LEFT JOIN wp_postmeta c ON (a.ID = c.post_id) WHERE a.post_type = 'revision'

Затем оптимизируйте все таблицы. И затем добавьте

define ('WP_POST_REVISIONS', FALSE);

в верхней части wp-config.php для отключения будущих ревизий.

2 голосов
/ 25 февраля 2011

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

2 голосов
/ 25 февраля 2011

Используйте EXPLAIN в медленных операторах SELECT, чтобы увидеть план запроса.Теперь вы можете догадаться, почему все идет медленно и съесть всю память.Вы указали правильные столбцы?Правильно ли написан ваш SQL?

Когда большая часть действия доступна только для чтения, с MyISAM все должно быть в порядке.MyISAM также дает вам полнотекстовый поиск, что вам может понадобиться в этом случае.innoDB не имеет полнотекстового поиска.

...