Уменьшаем количество запросов при выводе новостей

Уменьшаем количество запросов при выводе новостей


В DLE всегда подсчитывается количество новостей в выводимом списке коротких новостей, независимо от их количества.
Например бывают ситуации, когда в категории или подкатегории выводится всего 2-5 новостей, а в настройках указано 10 новостей на страницу. Естественно тут навигация не нужна, но DLE об этом узнает только после того как отдельно сделает запрос на подсчет количества новостей по заданным условиям. Вот именно этот запрос мы и будем оптимизировать.

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

Открыть файл /engine/modules/show.short.php, найти и удалить код:
    if( ! isset( $view_template ) ) {
        
        $count_all = $db->super_query( $sql_count );
        $count_all = $count_all['count'];
    
    } else
        $count_all = 0;

Найти строку:
$db->free( $sql_result );

После нее вставить:
if( !isset( $view_template )){
        if($i >= $config['news_number']){
            $count_all = $db->super_query( $sql_count );
            $count_all = $count_all['count'];
        }else $count_all = $i;
    }else $count_all = 0;

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

Добавить комментарий

Нам важно знать ваше мнение. Оставьте свой отзыв или ответ

    • bowtiesmilelaughingblushsmileyrelaxedsmirk
      heart_eyeskissing_heartkissing_closed_eyesflushedrelievedsatisfiedgrin
      winkstuck_out_tongue_winking_eyestuck_out_tongue_closed_eyesgrinningkissingstuck_out_tonguesleeping
      worriedfrowninganguishedopen_mouthgrimacingconfusedhushed
      expressionlessunamusedsweat_smilesweatdisappointed_relievedwearypensive
      disappointedconfoundedfearfulcold_sweatperseverecrysob
      joyastonishedscreamtired_faceangryragetriumph
      sleepyyummasksunglassesdizzy_faceimpsmiling_imp
      neutral_faceno_mouthinnocent

Комментариев 0