Медленные пользовательские запросы WordPress Более 7000 пользователей

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

Я включил кеширование в браузере, а также в php и gziping, а также с помощью плагина кеша W3 Total и попробовал другие плагины кеширования с минимальным успехом.

Также подняли время ожидания и память в php.ini и wp-config.

Главная страница, с которой у меня возникла проблема, http://www.qbhitlist.com/qbhitlist/quarterbacks/ но домашняя страница и две другие страницы рейтинга тоже медленные.

http://www.qbhitlist.com/qbhitlist/rankings/qbhl-top-50/
http://www.qbhitlist.com/qbhitlist/rankings/qbhl-premium-player-rankings/

Я понимаю, почему (опрашиваю более 7000 пользователей), но я не знаю, как это сделать.

Так есть ли способ сохранить основной запрос в файл json или глобальный массив, или lazyload запрос после загрузки страницы? Или любое другое решение, которое радикально уменьшит время загрузки страницы / улучшит производительность.

Любой совет будет принята с благодарностью.

1

Решение

Вы делаете это не правильно. Вы не должны сбрасывать все эти данные на одной странице одновременно, как это.

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

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

1

Другие решения

Вы можете хранить HTML в переходном процессе. Установите срок действия до 0 и удаляйте переходный процесс программно каждый раз, когда вы обновляете список, чтобы он восстанавливался.

Образец кода:

function get_qb_list() {

$qb_list = get_transient( 'qb_list' );

if( false === $qb_list ) {

$qb_list = 'HTML GOES HERE';

set_transient( 'qb_list', $qb_list, 0 );
}

return $qb_list;

}

Переходные процессы хранятся в таблице параметров wp. Узнайте больше о переходных API Вот.

1

По вопросам рекламы [email protected]