Intereting Posts
Есть ли способ внедрить форму Документов Google на странице без использования плагинов? Последний одиночный полный пост на главной странице, выдержки из списка блога Как получить случайное изображение из подмножества изображений в медиа-галерее? Помогите упорядочить цикл Post на два мета значения Обратная связь Ajax 0 Показать всех родителей и детей в пользовательском типе сообщения в правильном порядке Получить список всех доступных полей в профиле пользователя Что значит «детская тема»? Как перемещаться по сообщениям на основе настраиваемых полей Pretty Filter URL Я потерял ссылку на мои сообщения в моей строке меню предложение плагина для штрих-кода Автоматически вставлять функцию php в post $ the_content Лучший способ передвижения сайта в реальном времени Могу ли я показать интерфейс администратора тега в сообщении при входе в систему как администратор?

WordPress Database Slow – следует ли переключиться на InnoDB?

У меня есть сайт WordPress с более чем 10 тыс. Сообщений, и все начинается очень медленно, когда я добавляю и редактирую сообщения. Страницы загружаются хорошо и быстро для пользователей, а также списки администраторов, но при загрузке или обновлении сервер переходит на 100% процессор и занимает много времени (иногда дольше, чем время ожидания PHP 60-х годов).

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

Некоторые статистические данные:

select - per hour ~22k update - per hour ~7.6k set option - per hour ~7k 

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

благодаря

Редактирование : я нашел одну из основных проблем, вызвавших медленность, это был YARPP (еще один связанный плагин сообщений), который каждый раз восстанавливал «связанность», и это, по-видимому, связано с тегами 2k +, которые у нас есть. Я отключил опцию «рассмотреть теги», и она значительно ускорилась.

Кроме того, другие плагины, которые регенерируют вещи, могут вызывать такие проблемы, например, некоторые плагины XML-карт.

Итак, моя немедленная проблема решена, хотя я все равно хотел бы услышать хороший ответ InnoDB против MyISAM для WordPress!

Я бы действительно переключился на InnoDB. Блокировка таблиц / блокировка строк давно обсуждались многими. Я всегда выбирал руки InnoDB. Однако есть еще одна серьезная причина выбора InnoDB … CACHING .

В то время как большинство людей хвастается, что MyISAM быстрее читает, большинство людей забывают, что много кешей для MyISAM, который называется кешем ключей (установленным key_buffer_size), только кэширует индексные страницы из файлов .MYI. Он никогда не кэширует страницы данных. Он имеет официальный максимум 4 ГБ в 32-битных системах. 8 ГБ – лучший максимум для 64-битного.

Буферный пул InnoDB кэширует страницы данных и индексов. В зависимости от вашего сервера вы можете кэшировать весь набор данных в ОЗУ. Вы можете настроить InnoDB на 80% оперативной памяти и 10% на DB Conenctions и оставить 10% для ОС. Это справедливо даже для разных операционных систем .

Я рекомендовал эти вещи для клиентов Drupal с изумительным успехом. Это справедливо и для WordPress . Я предоставил поддержку БД для клиентов с помощью WordPress. Те же улучшения.

Вы всегда можете настроить память для InnoDB более эффективно, чтобы вы могли больше MyISAM. Всегда есть способ tweek InnoDB в соответствии с вашими потребностями в производительности . По мере роста ваших данных это в конечном итоге станет требованием .

InnoDB, вероятно, не поможет вам – блокировка уровня страницы / строки помогает смягчить конфликт, но не похоже, что это ваша проблема.

Там много всего, что предполагает, что MyISAM работает медленнее, чем InnoDB в среднем сценарии блога (гораздо больше, чем пишет).

Перед тем, как сделать переключатель, вы должны, по крайней мере, сделать следующее

  • запустите mysqltuner, который даст вам несколько советов по настройке (он не является непогрешимым или вообще не знает)
  • включите медленное ведение журнала запросов, оставьте его на день или около того, а затем начните просеивать через журнал и ОБЪЯСНИТЕСЬ с запросами, чтобы узнать, что происходит

Из личного опыта я обнаружил, что добавление индекса в неиндексированное поле на wp_comments значительно помогло в моей конкретной ситуации (периоды резкого комментирования, где 10 или около того люди могли пытаться комментировать одновременно), и вполне возможно, что выяснение какие запросы выполняются медленно и почему может привести вас к лучшему пониманию проблемы и РЕАЛЬНОЕ решение!