ФорумРазработкаБазы данных → Оптимизация SQL запроса

Оптимизация SQL запроса

  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 24 июня 2015 г. 1:50, спустя 8 минут 40 секунд

    @Абырвалг, ага, но на деле он не сложнее чем какой-нибудь mongodb или redis, может даже проще

    adw/0
  • Абырвалг

    Сообщения: 6476 Репутация: N Группа: Джедаи

    Spritz 24 июня 2015 г. 1:52, спустя 1 минуту 45 секунд

    Как бы да, но тут тебе придется заменять внутренности самого движка. Пользовался б автор Magento - просто купил бы какой-то экстеншн, в котором это реализовано да и все). В Mage искаропки есть преобразование EAV во flat table. При этом flat table может быть заменена на sphinxsearch/elasticsearch/etc при помощи сторонних расширений

  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 24 июня 2015 г. 1:57, спустя 4 минуты 31 секунду

    @Абырвалг, тогда бы у ТС возникла другая проблема, топик назывался бы не "Оптимизация SQL", а "Где купить подешевле мощный сервер для Magento". Или мажента уже не та что прежде?

    adw/0
  • developer

    Сообщения: 241 Репутация: N Группа: Кто попало

    Spritz 24 июня 2015 г. 3:06, спустя 1 час 9 минут 8 секунд

    Это Shop-Script Premium, ещё который шел до Вебассиста.
    Стоит на VPS'ке двухядерной с 2 гб ОЗУ.
    Магазин с посещаемостью порядка 700-2500 уников.

    У него по умолчанию на карточке товара 125 запросов, уже спустил это кол-во до 105 запросов.
    Создал индекс

    CREATE INDEX idx_productID ON ss_product_options_values (productID)

    Ещё чуть чуть и все будет бегать :)

    А с Magento что-то не удалось подружиться :(

  • artoodetoo

    Сообщения: 5139 Репутация: N Группа: в ухо

    Spritz 24 июня 2015 г. 3:31, спустя 25 минут 3 секунды

    А объясните мне тёмному, чем сфинкс-сёрч поможет если надо вывести карточку товара (и на это сейчас тратится 100+ запросов), а? Или вопроса никто не читал?

    ιιlllιlllι унц-унц
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 24 июня 2015 г. 3:35, спустя 4 минуты 3 секунды

    @artoodetoo, я не читал, если честно. Когда много php-кода я просто пролистываю))

    adw/0
  • developer

    Сообщения: 241 Репутация: N Группа: Кто попало

    Spritz 24 июня 2015 г. 4:07, спустя 31 минуту 47 секунд

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

    Сколько много нового можно узнать добавив в логи запросы.

  • artoodetoo

    Сообщения: 5139 Репутация: N Группа: в ухо

    Spritz 24 июня 2015 г. 4:19, спустя 12 минут 1 секунду

    @developer, эти люди везде успели наследить ;) мир несовершенен, просто пипец как.

    ιιlllιlllι унц-унц
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 24 июня 2015 г. 12:34, спустя 8 часов 14 минут 58 секунд

    @artoodetoo, +1

    adw/0
  • developer

    Сообщения: 241 Репутация: N Группа: Кто попало

    Spritz 3 августа 2015 г. 4:32, спустя 39 дней 15 часов 58 минут

    Есть у меня ещё один безумно грузящий базу скриптец:

    
    <?php
        $query = $db->query("SELECT * FROM refer GROUP BY keyword ORDER BY date DESC LIMIT 0,10");
    while($row = $db->get_row($query)){
        preg_match_all('/([0-9]{4})\/([0-9]{2})\/([0-9]{2})\/(.+?).html/', $row['url'], $request_out);
    
        $first = mb_substr($row['keyword'],0,1); // первая буква
        $last = mb_substr($row['keyword'],1); // все кроме первой буквы
        $first = mb_strtoupper($first);
        $last = mb_strtolower($last);
        $keyword = $first.$last;
    
        $db->query( "SELECT p.id, p.date, p.short_story, p.xfields, p.title, p.category, p.alt_name FROM " . PREFIX . "_post p LEFT JOIN " . PREFIX . "_post_extras e ON (p.id=e.news_id) WHERE p.approve=1 AND p.alt_name = '" . $request_out[4][0] . "' AND date >= '" . $request_out[1][0] . "-" . $request_out[2][0] . "-" . $request_out[3][0] . "' AND date < '" . $request_out[1][0] . "-" . $request_out[2][0] . "-" . $request_out[3][0] . "' + INTERVAL 24 HOUR LIMIT 1" );
        while ( $row_post = $db->get_row() ) {
            $row_post['date'] = strtotime( $row_post['date'] );
            preg_match_all('/(img|src)=("|\')[^"\'>]+/i', $row_post['short_story'], $media);
            $data=preg_replace('/(img|src)("|\'|="|=\')(.*)/i',"$3",$media[0]);
            $info = parse_url($data[0]);
            if($info['host'] == 'site.ru') {
                $referer_block .= '<li><a href="'.$row['url'].'"><div><img src="' . $data[0] . '" border="0" alt="'.$row_post['title'].'" title="'.$row_post['title'].'" /></div>'.$keyword.'</a></li>';
            }
        }
    }
    

    вот такой вот не очень красивый скрипт с такими же стремными запросами, возможно кто-то сможет подсказать, что с ним можно сделать, чтобы облегчить жизнь сервера?

    PS Как нормально вставлять код, постоянно ипусь

  • master

    Сообщения: 3236 Репутация: N Группа: Джедаи

    Spritz 3 августа 2015 г. 4:56, спустя 23 минуты 15 секунд

    @developer, pastebin.net

    не всё полезно, что в swap полезло
  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 3 августа 2015 г. 8:08, спустя 3 часа 11 минут 59 секунд

    PS Как нормально вставлять код, постоянно ипусь

    @developer, руками блеядь.

    Спустя 71 сек.

    @developer, pastebin.net

    @master, лучше уж GitHub Gist

    https://gist.github.com/phpdude/23897d2be673fbe721c9

    Сапожник без сапог
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 3 августа 2015 г. 8:10, спустя 2 минуты 36 секунд

    лучше уж GitHub Gist

    @phpdude, +1

    Спустя 37 сек.

    кстати, мой пров дома забанил http://pastebin.com/ )

    adw/0
  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 3 августа 2015 г. 8:11, спустя 1 минуту 5 секунд

    кстати, мой пров дома забанил http://pastebin.com/ )

    @adw0rd, а нехуй смотреть запрещеные сайты в великой стране

    Сапожник без сапог
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 3 августа 2015 г. 8:14, спустя 2 минуты 9 секунд

    Есть у меня ещё один безумно грузящий базу скриптец

    @developer, что говорит EXPLAIN на этот запрос?

    Спустя 39 сек.

    кстати, мой пров дома забанил http://pastebin.com/ )

    @adw0rd, а нехуй смотреть запрещеные сайты в великой стране

    @phpdude, они бы лучше дефейсили и баннеры туда вешали с проститутками

    adw/0

Пожалуйста, авторизуйтесь, чтобы написать комментарий!