forum.coppermine-gallery.net

Support => Русский (Russian) => Language Specific Support => cpg1.5.x Русский (Russian) => Topic started by: 6yktonox on July 05, 2010, 09:24:46 am

Title: уменьшить запрос на показ последних фотоk
Post by: 6yktonox on July 05, 2010, 09:24:46 am
Смысле в следующем.
Главная страница галереи загружается моментально, но стоит щелкнуть по одной из фотографий (которые отоборажаются как lastup) то процесс показа этой самой фотографии занимает около 10 секунд. Причину нашел.
Дело в том, что при выборе фотографии он строит и обрабатывает порядок всех (свыше 16000) фотографий моей галереи.
Каким кодом можно попроваить это? ну к примеру последнии 500 фотографий
Title: Re: уменьшить запрос на показ последних фотоk
Post by: Alex Revo on July 05, 2010, 09:45:35 am
Нужно найти в коде где строятся запросы к БД и указать LIMIT
Title: Re: уменьшить запрос на показ последних фотоk
Post by: 6yktonox on July 05, 2010, 11:12:07 am
Нужно найти в коде где строятся запросы к БД и указать LIMIT

вот оригинал
Code: [Select]
case 'lastup': // Latest (most recent) uploads

        if ($cat && $CURRENT_CAT_NAME) {
            $album_name = cpg_fetch_icon('last_uploads', 2) . $lang_meta_album_names['lastup'] . ' - ' . $CURRENT_CAT_NAME;
        } else {
            $album_name = cpg_fetch_icon('last_uploads', 2) . $lang_meta_album_names['lastup'];
        }

        $query = "SELECT COUNT(*)
                FROM {$CONFIG['TABLE_PICTURES']} AS r
                INNER JOIN {$CONFIG['TABLE_ALBUMS']} AS a ON a.aid = r.aid
                $RESTRICTEDWHERE
                AND approved = 'YES'";

        $result = cpg_db_query($query);

        list($count) = mysql_fetch_row($result);
        mysql_free_result($result);

        list($ASC, $DESC, $limit, $flipped) = get_pic_data_ordering($count, $limit1, $limit2);

        $select_columns = implode(', ', $select_column_list);

        $query = "SELECT $select_columns
                FROM {$CONFIG['TABLE_PICTURES']} AS r
                INNER JOIN {$CONFIG['TABLE_ALBUMS']} AS a ON a.aid = r.aid
                $RESTRICTEDWHERE
                AND approved = 'YES'
                ORDER BY r.pid $DESC $limit";

        $result = cpg_db_query($query);
        $rowset = cpg_db_fetch_rowset($result);
        mysql_free_result($result);

        if ($flipped) {
            $rowset = array_reverse($rowset);
        }
       
        if ($set_caption) {
            build_caption($rowset, array('ctime'));
        }

        $rowset = CPGPluginAPI::filter('thumb_caption_lastup', $rowset);

        return $rowset;
        break;
Title: Re: уменьшить запрос на показ последних фотоk
Post by: Alex Revo on July 05, 2010, 11:40:24 am
а что находится в $RESTRICTEDWHERE?
Title: Re: уменьшить запрос на показ последних фотоk
Post by: 6yktonox on July 05, 2010, 11:48:16 am
а что находится в $RESTRICTEDWHERE?
если я заменю на
Code: [Select]
ORDER BY r.pid $DESC limit 0,100";то он отображает посление 100 фотографий, не учитывая что мне нужно всего 2 ряда (lastup,2)
К тому же, при щелчке по любой из фотографий(последние добавления), он мне показывает полноразмерное изображение первой из последних добавленных
Title: Re: уменьшить запрос на показ последних фотоk
Post by: Alex Revo on July 05, 2010, 11:57:33 am
я потому и спросил что в этой переменной, может там как раз были какие-то условия выборки
Title: Re: уменьшить запрос на показ последних фотоk
Post by: 6yktonox on July 05, 2010, 12:02:59 pm
я потому и спросил что в этой переменной, может там как раз были какие-то условия выборки
нет. эта переменная пустая. выше я привел оригинальный код из funtions.inc.php
на данный момент я свою проблему не решил. все в оригинале. подскажите куда копать? где установить лимит на выборку последних, к примеру, 300 фотографий?
Title: Re: уменьшить запрос на показ последних фотоk
Post by: Alex Revo on July 05, 2010, 12:31:01 pm
Вы правильно привели код изменения, нужно смотреть там и дальше в CPGPluginAPI::filter('thumb_caption_lastup', $rowset)
Title: Re: уменьшить запрос на показ последних фотоk
Post by: 6yktonox on July 05, 2010, 02:14:45 pm
Вы правильно привели код изменения, нужно смотреть там и дальше в CPGPluginAPI::filter('thumb_caption_lastup', $rowset)
прошу прощения, но что в нем нужно изменить? :)
Title: Re: уменьшить запрос на показ последних фотоk
Post by: Alex Revo on July 05, 2010, 02:40:57 pm
Я не знаю, нужно смотреть код и распутывать клубок )
Title: Re: уменьшить запрос на показ последних фотоk
Post by: 6yktonox on July 05, 2010, 04:04:32 pm
Я не знаю, нужно смотреть код и распутывать клубок )
колдовство над кодом никаких результатов мне не дало. помогите?
Title: Re: уменьшить запрос на показ последних фотоk
Post by: 6yktonox on July 07, 2010, 02:26:40 pm
чего только не пытался изменить. все хожу "вокруг да около", приведите пожалуйста готовый кусочек кода
Title: Re: уменьшить запрос на показ последних фотоk
Post by: 6yktonox on July 30, 2010, 04:14:52 pm
неужели ни у кого не было подобной проблемы?
Title: Re: уменьшить запрос на показ последних фотоk
Post by: Plazik on July 30, 2010, 05:11:33 pm
неужели ни у кого не было подобной проблемы?
Отключи показ последних фоток на главной и сделай вместо этого показ последних измененных альбомов.
Title: Re: уменьшить запрос на показ последних фотоk
Post by: Makc666 on August 20, 2010, 11:04:04 pm
В том коде, который Вы приводили, над строкой:
Code: [Select]
$query = "SELECT COUNT(*)добавьте строку:
Code: [Select]
print "---->>> [$RESTRICTEDWHERE] <<<----<br />";
И покажите, что Вам будет выводится на той странице, где происходит долгий вывод.