Оптимизация блога “запросы”

Ну вот моя статистика запросов.
Пришлось отказаться от

Simple forum "Форум" – на главной 23 запроса
Simple forum "Форум" – на странице форума 46 запросов

Dan’s Avatar Thingy "Аватары" – 25 запросов

Popularity Contest "Популярные темы" с виджетом – 10 запросов
Popularity Contest "Популярные темы" с виджетом вывода + популярные в категории – 15 запросов
(тут удалил только виджет а "Популярность x%" оставил)

После этого запросы к базе данных уменьшились с 70-106 до 30-40.

Может кому поможет с тормозами…

как считаете запросы?

<?php echo get_num_queries(); ?>/<?php timer_stop(1); ?> в footer.php

вернее я хотел спросить как подсчитали какой именно плагин сколько запросов дает? или только высчитывая с общего количества?

(запросы при включенном плагине) – (запросы при выключенном) = сколько запросов дает плагин.

да, хорошая практика. ещё могу порекомендовать (хоть и мелочь, а приятно) в файлах темы (header.php тому пример) основные данные использовать в переменных. т.е. в место десятка вызова <?php bloginfo(‘home’); ?> использовать: в самом начале файла <?php $bloginfoHome = get_bloginfo(‘home’); ?> ну и в последствии выводить <?php print($bloginfoHome); ?>

25 запросов плагин аватаров. ужос! аватары того не стоят 🙂

Опции кешируются. А поскольку в 2.5 кеш не отключатеся (или не включается – это как посмотреть), то действительно мелочь. 😉

А вот еще один подарочный набор: плагин hidepost. Он от нефиг делать генерирует 5 лишних запросов. В его option_init.php лежит вот такой "подарочек":

//My Old Var, just for older blog
if (get_option('content_text')) $hidepost_content_text = trim(get_option('content_text'));
if (get_option('link_text')) $hidepost_link_text = trim(get_option('link_text'));
if (get_option('hide_link')) $hidepost_hide_link = get_option('hide_link');
if (get_option('allow_bot')) $hidepost_allow_bot = get_option('allow_bot');
if (get_option('hide_content')) $hidepost_hide_content = get_option('hide_content');

Эти опции не создаются, следовательно wp_load_alloptions() их не подгружает, а потому каждый выше перечисленный get_option создает один бесполезный запрос к базе.

Идем дальше. Плагин "Wordpress Navigation List Plugin NAVT" создает свои опции с отключенным автолоадом, и как результат – за каждой опцией WP ходит отдельно. Изменение autoload=’yes’ уменьшило количество запросов с морды на 3 штуки (плагин активирован, но не используется).

так как же отказаться от hide post// альтернатива есть???

так как же отказаться от hide post// альтернатива есть???

нормальной нету. остальные плагины либо намного хуже функциональностью, либо вообще работают с багами.

так как же отказаться от hide post// альтернатива есть???

Зачем отказываться? Просто выкосить вредоносный бесполезный кусок.

бррр сейчас посмотрел а стоит Wp_Hide.php это не одно и тоже????
и чем он хуже?

Не, не одно. Wp Hide от wp-skins.info простой как грабли, настроек нет. Этим лучше. И этем же хуже.

Плагин shutter-reloaded 4 запроса…:(

Можно ли как нибудь уменьшить их в нем?

4 это не 40, в чем проблема то?

4 + 4 + 4 и тд достаточно много получается…
Сейчас у меня 41 запрос на главной.

Вот тут на форуме проскочила замечательная идея – подложить в 2.5 файл cache.php от 2.3. Только что проверил на тестовом блоге: количество запросов на морде упало с 18 до 5.

а нужно что бы WP Super Cache был включен или это встроенный кэш блога???
что то я cache.php подсунул и все так же и осталось.

Подсунуть мало. Нужно:

1. в wp-config.php включить кеширование строкой
define(‘ENABLE_CACHE’,true);

2. создать директорию /wp-content/cache/ с правами 777

В safe mode может не работать, т.к. php может не хватить прав на создание поддиректорий.

Плагины wp-cache и wp-super-cache – альтернативы нативному кешированию.

У меня локальный сервер

<?php
// ** MySQL settings ** //
define('DB_NAME', '');
define('DB_USER', '');
define('DB_PASSWORD', '');
define('DB_HOST', 'localhost');
define('DB_CHARSET', 'utf8');
define('DB_COLLATE', '');
define('ENABLE_CACHE',true);

define('SECRET_KEY', 'put your unique phrase here');

$table_prefix  = 'wp_';

define ('WPLANG', 'ru_RU');


define('ABSPATH', dirname(__FILE__).'/');
require_once(ABSPATH.'wp-settings.php');
?>

добавил код… ничего после перезагрузки сервера не изменилось.

Все разобрался=))))
Вообщем с 39 упало до 22…
Я рад…будем тестить дальше.

Убрались запросы. Зато время загрузки страницы чуть увеличилось….
было 39/0,600 стало 22/0,900
Хм и что же тогда кешируется и для чего?

Кешируются запросы к базе. Для тех случаев, когда mysql медленнее файловых операций.

Anonymous
Отправить
Ответ на: