Медленная работы пагинации в wordperss

G
На сайте с 20.07.2008
Offline
85
607

Имеется большое количество записей в wordpress(около 50000) и когда щелкаешь на ссылку пагинации, начинает долго обрабатываться, посмотрел в лог медленных запросов mysql, вот что пишет:

# Query_time: 12.333304 Lock_time: 0.000189 Rows_sent: 20 Rows_examined: 45575

SET timestamp=1372855664;

SELECT SQL_CALC_FOUND_ROWS wp_posts.ID FROM wp_posts WHERE 1=1 AND wp_posts.post_type = 'post' AND (wp_posts.post_status = 'publish') AND wp_posts.post_title LIKE '%' ORDER BY wp_posts.post_date DESC LIMIT 60, 20;

Как исправить эту проблему? Спасибо

[umka]
На сайте с 25.05.2008
Offline
456
#1

Выборка из одной таблицы из 50 000 записей, фактически, с одним условием — не сверхзадача и должна выполняться за доли секунды.

Скорее всего, дело в общей загруженности системы.

Лог в помощь!
IL
На сайте с 20.04.2007
Offline
435
#2
Garf:
Rows_examined: 45575

Эм.. а этот кусок запроса точно нужен?

Garf:
wp_posts.post_title LIKE '%'
... :) Облачные серверы от RegRu - промокод 3F85-3D10-806D-7224 ( http://levik.info/regru )
SeVlad
На сайте с 03.11.2008
Offline
1609
#3
ivan-lev:
а этот кусок запроса точно нужен?

Garf, ты ж покажи functions.php с

$a['base'] = str_replace(999999999, '%#%', get_pagenum_link(999999999));

;)

Делаю хорошие сайты хорошим людям. Предпочтение коммерческим направлениям. Связь со мной через http://wp.me/P3YHjQ-3.
G
На сайте с 20.07.2008
Offline
85
#4

SeVlad,

25 function wp_corenavi() {

26 global $wp_query, $wp_rewrite;

27 $pages = '';

28 $max = $wp_query->max_num_pages;

29 if (!$current = get_query_var('paged')) $current = 1;

30 $a['base'] = str_replace(999999999, '%#%', get_pagenum_link(999999999));

31 $a['total'] = $max;

32 $a['current'] = $current;

33

34 $total = 1; //1 - выводить текст "Страница N из N", 0 - не выводить

35 $a['mid_size'] = 3; //сколько ссылок показывать слева и справа от текущей

36 $a['end_size'] = 1; //сколько ссылок показывать в начале и в конце

37 $a['prev_text'] = '«'; //текст ссылки "Предыдущая страница"

38 $a['next_text'] = '»'; //текст ссылки "Следующая страница"

39

40 if ($max > 1) echo '<div class="navigation">';

41 if ($total == 1 && $max > 1) $pages = '<span class="pages">Страница ' . $current . ' из ' . $max . '</span>'."\r\n";

42 echo $pages . paginate_links($a);

43 if ($max > 1) echo '</div>';

44 }

---------- Post added 07-07-2013 at 23:32 ----------

Я пробовал делать и другую функцию по выводу пагинации, она формирыет такие же адреса ссылок как и эта и также долго открывается

G
На сайте с 20.07.2008
Offline
85
#5

Вставил стандартную функцию <?php previous_posts_link('Предыдущая') ?> и все равно долгая обработка

---------- Post added 08-07-2013 at 12:00 ----------

ivan-lev, Этот кусок сам wordpress формирует

SeVlad
На сайте с 03.11.2008
Offline
1609
#6
Garf:
Этот кусок сам wordpress формирует

Не ВП, а твоя тема же! (мб и не только она)

Я даже показал из какого места.

Неужели не дошло, что нужно или сменить тему или заказать её переделку?

G
На сайте с 20.07.2008
Offline
85
#7

SeVlad, Точно, спс.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий