MySQL является неотъемлемой частью WordPress. Поскольку каждая генерируемая страница хранится в MySQL, огромную роль играет оптимизация базы данных в WordPress.
В зависимости от памяти, доступной для экземпляра базы данных, важно чтобы она вся находилась в оперативной памяти и не обращалась к файлу подкачки. Использование файла подкачки сильно снизит производительность. Поэтому параметры конфигурации MySQL могут сильно зависеть от количества сообщений на вашем блоге. Ниже приведена общая рекомендация, но она не является полной:
Рекомендуемые настройки my.cnf
[mysqld] local-infile=0 query_cache_size=84M tmp_table_size=84M max_heap_table_size=64M thread_cache_size=4 table_cache=164
По умолчанию в WordPress установлены таблицы базы данных с типом хранилища MyISAM. Это вполне нормально для небольших веб-сайтов, но может вызвать проблемы при большом количестве операций чтения и записи в таблицах БД. Формат MyISAM использует блокировку при обновлении таблицы.
Это означает, что если один процесс должен выполнить запись в таблицу базы данных, он должен ждать, пока не завершится другой процесс. Это может привести к задержке генерации страниц. В действительности MyISAM является форматом БД на основе файлов с последовательным доступом (flat-file), в котором быстро происходит чтение, но плохо поддерживаются другие типы операций.
С другой стороны формат таблиц InnoDB поддерживает блокировку строк, и несколько операций чтения и записи могут использовать таблицу одновременно. Это позволяет избежать задержек при генерации страницы. Однако не каждая таблица в WordPress должна быть преобразована. Некоторые таблицы будут работать лучше с MyISAM, поскольку они предназначены в основном только для чтения.