Liveinternet заблокировал роскомнадзор, по крайней мере у меня (пров Ростелеком) Li заблокирован.
контент на страничках есть и он индексировался до 20х чисел марта нормально, а с апреля нет.
bing, yahoo и даже yandex нормально индексируют посты, проблемы только с гуглом.
завтра 50 покажет, а может и 49
он уже завтра до 50 упадёт, точнее рубль укрепится до 50, сейчас на межбанке 51.9
не будет по 100 это 100%, даже по 60 уже вероятно не будет, это я говорю как оставшийся с 5 кусками зелени на вебмани 😡
тоже думал на счёт бэкапа вэпээсок, возможно увеличивается дисковая нагрузка на основном сервере в это время.
Возникла такая проблемка, ночью когда самая минимальная нагрузка, начинают виснуть запросы использующие Using temporary, Using filesort
например:
SELECT wp_posts.ID FROM wp_posts INNER JOIN wp_term_relationships ON (wp_posts.ID = wp_term_relationships.object_id) INNER JOIN wp_term_taxonomy ON (wp_term_relationships.term_taxonomy_id = wp_term_taxonomy.term_taxonomy_id) WHERE 1=1 AND wp_term_taxonomy.taxonomy = 'category' AND wp_term_taxonomy.term_id IN ('5124') AND wp_posts.post_type = 'post' AND (wp_posts.post_status = 'publish') GROUP BY wp_posts.ID ORDER BY wp_posts.post_date DESC LIMIT 60, 10;
# Query_time: 23.347769 Lock_time: 0.000065 Rows_sent: 10 Rows_examined: 12216
SELECT wp_posts.ID FROM wp_posts WHERE 1=1 AND ((wp_posts.post_title LIKE '%blah%') AND (wp_posts.post_title LIKE '%blah%') OR (wp_posts.post_title LIKE '%blah blah%')) AND (wp_posts.post_status = 'publish') ORDER BY wp_posts.post_date DESC LIMIT 10, 10;
# Query_time: 12.691927 Lock_time: 0.000079 Rows_sent: 10 Rows_examined: 338874
Это началось после того как я убрал нагрузку изменив тот запрос, если вернуть нагрузку, то всё нормально, если можно так сказать :)
Что это может быть?
Вот такой получился скрипт, возможно ещё какие то косяки вылезут, но это ужа завтра разберусь, главное что нагрузку снял и кольцевую перелинковку восстановил
<?php function show_previous_posts_from_category ($the_post_id, $the_category_id = 0, $post_num) { $num = 0; global $wpdb; $sql = "SELECT p.ID, post_date, post_content, post_title, post_name FROM $wpdb->posts p WHERE 1=1 AND (p.ID IN( SELECT object_id FROM $wpdb->term_relationships WHERE term_taxonomy_id = '$the_category_id' )) AND p.ID < '$the_post_id' ORDER BY p.ID DESC LIMIT $post_num"; $result = $wpdb->get_results($sql, OBJECT); global $post; foreach ($result as $post) { setup_postdata($post); ?> <div class="related"><a href="<?php the_permalink() ?>" title="<?php the_title(); ?>"><img src="<?php echo catch_that_image() ?>" alt="<?php the_title(); ?>" height="115" width="150"></a><b><?php the_title(); ?></b></div> <?php $num++; } if ( $num < $post_num || !$result ) { $need_more = $post_num-$num; $sql = "SELECT p.ID, post_date, post_content, post_title, post_name FROM $wpdb->posts p WHERE 1=1 AND (p.ID IN( SELECT object_id FROM $wpdb->term_relationships WHERE term_taxonomy_id = '$the_category_id' )) AND p.ID > '$the_post_id' ORDER BY p.ID DESC LIMIT $need_more"; $more_posts = $wpdb->get_results($sql, OBJECT); foreach ($more_posts as $post){ setup_postdata($post); ?> <div class="related"><a href="<?php the_permalink() ?>" title="<?php the_title(); ?>"><img src="<?php echo catch_that_image() ?>" alt="<?php the_title(); ?>" height="115" width="150"></a><b><?php the_title(); ?></b></div> <?php }}} ?> <?php $the_cat = get_the_category(); $the_cat_id = $the_cat[0]->term_taxonomy_id; show_previous_posts_from_category($post->ID, $the_cat_id, 4); wp_reset_query(); ?>
я тут переписал немного запрос
SELECT SQL_NO_CACHE p.ID, post_date, post_content, post_title, post_name
FROM wp_posts p
WHERE 1=1 AND ( p.ID IN (
SELECT object_id
FROM wp_term_relationships
WHERE term_taxonomy_id IN ('9')
) )
AND p.ID < '2756199'
ORDER BY p.ID DESC
LIMIT 4
запрос занял 0.0005 сек
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY p range PRIMARY PRIMARY 3 NULL 328324 Using where
2 DEPENDENT SUBQUERY wp_term_relationships unique_subquery PRIMARY,term_taxonomy_id PRIMARY 5 func,const 1 Using index; Using where
единственное, что потерялась кольцевая перелинковка, то есть когда доходит до первого поста категории, раньше показывало последние посты, теперь для первых постов нет ссылок, вот думаю, что я упустил?
like ещё притормаживает иногда, но я это решил ограничив поиск то title, если отключить скрипт предыдущих постов из категории, то всё летает, а при включенном тормозит и растёт нагрузка, может есть смысл разбить его на 2 запроса, чтобы один запрос делал выборку по id, а второй запрос уже брал остальную информацию из выделенных по id записей в данном случае 4 записи, у меня по такому принципу сделана выборка категорий, один запрос берёт id ограниченные 10 постами на странице, а второй запрос вытягивает остальное уже из этих 10 не перетряхивая все посты в категории, раньше тоже жутко тормозило, вроде эту проблему решили аж только в 4 версии WP, она возникала на блогах с большим количеством постов, более 10к.
Надо подумать как теперь этот метод использовать в этом скрипте.