Как добавить индексы в базу данных WordPress?
Я получил сообщение от Hostgator о приостановке моего аккаунта из-за нагрузки на их серверы. Это уже пятый раз, когда такое происходит. Я использую shared-хостинг.
Они сказали, что проблему можно решить, просто добавив новые индексы в базу данных или оптимизировав ее другими способами. Я использовал SQL-запросы и опцию "optimize" в phpMyAdmin для оптимизации базы данных, но это не помогло.
Я также установил Super Cache, как они рекомендовали, но это тоже не дало результата.
Теперь я хочу попробовать добавить индексы в базу данных. Как это сделать? Кто-нибудь знает, как это сделать, пожалуйста? Это срочно.
Спасибо.

База данных WordPress уже проиндексирована. Подробный список индексов по таблицам можно найти в этой статье кодекса: http://codex.wordpress.org/Database_Description
Даже если бы это было не так, для эффективного добавления индексов вам необходимо знать, какие запросы выполняются. То есть, быстрого решения не существует — вам пришлось бы изучить принципы работы индексирования, выявить медленные запросы и действовать исходя из этого.
Если у вас действительно есть проблемы с медленными запросами, скорее всего, это связано с плохо написанным плагином или файлом темы, которые вы используете. Попробуйте отключить все плагины и переключиться на стандартную тему, чтобы проверить, как это повлияет на производительность. Если ваш сайт всё ещё слишком нагружает ваш виртуальный хостинг (при использовании стандартной темы и без плагинов), вам следует сменить хостинг-провайдера.

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

Судя по его вопросу, я не думаю, что он это знает. Похоже, он надеется, что есть какая-то команда "добавить индексы", которую можно выполнить для улучшения производительности, а я пытаюсь объяснить, что всё сложнее. Ему нужно понять свои запросы, прежде чем решать, можно ли улучшить их производительность дополнительными индексами. Похоже, он не в состоянии это сделать, так как буквально спрашивает, как добавить индексы, а не КАКИЕ индексы добавить или зачем. В любом случае, да, WordPress отлично индексируется для установки с дефолтной темой и без плагинов.

Привет, ребята. Спасибо за ответы. Я знал, что WordPress уже индексируется, потому что мой хостинг сказал: "Решение этой ситуации может быть таким простым, как добавление дополнительных индексов в вашу базу данных, оптимизация используемых запросов или что-то столь же простое." "Дополнительные индексы" — это фраза, которую они использовали. В любом случае, проблема с высокой нагрузкой возникает в post-new.php (для записей). Когда я нажимаю "Добавить новую", страница грузится вечно (с белым экраном), и затем мне приходится закрывать вкладку и пробовать снова, пока страница наконец не откроется. Как это исправить с помощью дополнительных индексов? Спасибо.

На сайте чуть более 8 000 статей, и он получает около 2000 посетителей в день, которые просматривают страницы примерно 5 000-8 000 раз ежедневно. Размер базы данных составляет около 66 МБ. Просто поделился этой информацией, если это что-то значит.

@KwameBoame Вы не знаете, что МОЖЕТЕ исправить это с помощью дополнительных индексов. Индексация — не решение всех проблем, связанных с MySQL, и если вы не знаете точную причину своей проблемы, вы не можете быть уверены, что дополнительные индексы её исправят. Возможно, это вообще не связано с MySQL — например, в плагине может быть плохой цикл, из-за которого даже хороший запрос выполняется слишком много раз. Кто знает. Если ваш хостинг уверен, что проблема в одном из ваших запросов, попросите их включить "лог медленных запросов" и предоставить вам этот лог. А пока я снова рекомендую отключить все плагины, чтобы проверить, решит ли это проблему.

@MathSmath спасибо за совет. Это сработало. Плагин Super Cache оказался виновником. Из-за него post-new.php выполнял несколько сотен запросов, пока не происходил таймаут. Теперь мне нужно найти лучший плагин для кэширования. Спасибо за помощь, друг.

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

Понял, и в какой-то мере согласен. Он должен иметь возможность управлять своим сайтом без нагрузки на сервер; но, опять же, у вас может быть буквально слишком много посетителей (что хорошо), и тогда нужно переходить на более мощный тарифный план. Индексация WordPress достаточно хороша, чтобы работать с довольно большим сайтом без проблем; но опять же это зависит от плагинов, выполняющих запросы, и темы. Кроме того, если у вас установлено и активно 100 плагинов, это не поможет. Простой путь: перейти с экономного хостинга на более мощный. Сложный путь: деактивировать плагины и оптимизировать запросы.

Я бы рекомендовал использовать плагин http://wordpress.org/extend/plugins/wp-super-cache/, если ваш сайт не очень динамичный и обновляется, скажем, раз в день. Этот плагин создает статические файлы из динамического контента, что практически исключает запросы к базе данных (вы можете выбрать, что не должно кэшироваться). Это делает сайт очень быстрым. [НО обязательно сделайте резервную копию перед установкой]
Вот я сделал скриншот, как проиндексировать поле http://s10.postimage.org/wxjn9u2uh/index.jpg НО - НЕ ВСЕ ПОЛЯ можно и нужно индексировать. Индексируемое поле должно быть определенного размера. И индексацию следует делать для полей, по которым вы часто выполняете запросы.
