<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: Оптимизация запроса GROUP BY</title>
    <link>https://opennet.ru/openforum/vsluhforumID8/5373.html</link>
    <description>Знатоки SQL! Нужна помощь в оптимизации то ли запроса, то ли базы данных. &lt;br&gt;&lt;br&gt;В двух словах, есть база данных некоторых товаров, у каждого товара есть производитель (id) и кол-во таких товаров в наличии. Необходимо выдать общее количество разных товаров каждого производителя. Это, конечно практически книжный пример использования GROUP BY, но задача усложняятся тем, что записей в таблице миллионы и работает стандартное решение слишком медленно. Может, кто-нибудь знает какой-то хитрый вариант решения данной проблемы?&lt;br&gt;&lt;br&gt;Заранее всем спасибо!&lt;br&gt;</description>

<item>
    <title>Оптимизация запроса GROUP BY (TimeKeeper)</title>
    <link>https://opennet.ru/openforum/vsluhforumID8/5373.html#6</link>
    <pubDate>Thu, 04 Sep 2008 12:45:08 GMT</pubDate>
    <description>Сталкнулся с похожей проблемой&lt;br&gt;&lt;br&gt;Добавлены строки: 21057 (запрос занял 108.9304 сек.)&lt;br&gt;SQL-запрос:&lt;br&gt;INSERT IGNORE INTO temp2&lt;br&gt;SELECT page_graph.id_page_to&lt;br&gt;FROM page_graph&lt;br&gt;RIGHT JOIN temp1 ON ( temp1.id = page_graph.id_page_from )&lt;br&gt;&lt;br&gt;---------------------------------------&lt;br&gt;&lt;br&gt;А SELECT:&lt;br&gt;&lt;br&gt;строки 0 - 29 (4,629,563 всего, запрос занял 0.0004 сек.)&lt;br&gt;SQL-запрос:&lt;br&gt;SELECT page_graph.id_page_to&lt;br&gt;FROM page_graph&lt;br&gt;RIGHT JOIN temp1 ON ( temp1.id = page_graph.id_page_from )&lt;br&gt;&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>Оптимизация запроса GROUP BY (TimeKeeper)</title>
    <link>https://opennet.ru/openforum/vsluhforumID8/5373.html#5</link>
    <pubDate>Thu, 04 Sep 2008 12:44:34 GMT</pubDate>
    <description>Сталкнулся с похожей проблемой&lt;br&gt;&lt;br&gt;Добавлены строки: 21057 (запрос занял 108.9304 сек.)&lt;br&gt;SQL-запрос:&lt;br&gt;INSERT IGNORE INTO temp2&lt;br&gt;SELECT page_graph.id_page_to&lt;br&gt;FROM page_graph&lt;br&gt;RIGHT JOIN temp1 ON ( temp1.id = page_graph.id_page_from ) ;&lt;br&gt;&lt;br&gt;---------------------------------------&lt;br&gt;&lt;br&gt;А SELECT:&lt;br&gt;&lt;br&gt;строки 0 - 29 (4,629,563 всего, запрос занял 0.0004 сек.)&lt;br&gt;SQL-запрос:&lt;br&gt;SELECT page_graph.id_page_to&lt;br&gt;FROM page_graph&lt;br&gt;RIGHT JOIN temp1 ON ( temp1.id = page_graph.id_page_from ) ;&lt;br&gt;&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>Оптимизация запроса GROUP BY (Паша)</title>
    <link>https://opennet.ru/openforum/vsluhforumID8/5373.html#4</link>
    <pubDate>Sun, 18 Nov 2007 14:16:28 GMT</pubDate>
    <description>&amp;gt;Необходимо выдать общее &lt;br&gt;&amp;gt;количество разных товаров каждого производителя.&lt;br&gt;&lt;br&gt;Это понимается достаточно конкретно, и может быть кэшировано. Если Вам нужно что-то ещё, описывайте подробнее.&lt;br&gt;&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>Оптимизация запроса GROUP BY (tx2)</title>
    <link>https://opennet.ru/openforum/vsluhforumID8/5373.html#3</link>
    <pubDate>Sun, 18 Nov 2007 12:41:10 GMT</pubDate>
    <description>какой движок табличный (иннодб?)..&lt;br&gt;и как организована таблица и индексы в ней?&lt;br&gt;&lt;br&gt;возможно создание дополнительных(и м/б избыточных) индексов по нескольким полям улучшит ситуацию...&lt;br&gt;</description>
</item>

<item>
    <title>Оптимизация запроса GROUP BY (Urms)</title>
    <link>https://opennet.ru/openforum/vsluhforumID8/5373.html#2</link>
    <pubDate>Sun, 18 Nov 2007 09:40:33 GMT</pubDate>
    <description>&amp;gt;Кроме group by id с вытаскиванием sum(count) ничего вроде и не сделать. &lt;br&gt;&amp;gt;Насколько медленно? Какая БД? Если есть возможность можно снапшот (Materialized View) &lt;br&gt;&amp;gt;оcвежать по расписанию. Динамика то у таблицы наверное небольшая в пределах &lt;br&gt;&amp;gt;допустимых погрешностей. &lt;br&gt;&lt;br&gt;Т.е. сделать какой-то кеш? Беда в том, что запрос с дополнительными условиями вроде категории товара и т.п. и от этого зависит кол-во. Все варианты не выйдет покешировать. &lt;br&gt;&lt;br&gt;А работает это все достаточно медленно, чтобы быть слишком медленным для юзера. База данных -- MySQL&lt;br&gt;</description>
</item>

<item>
    <title>Оптимизация запроса GROUP BY (Паша)</title>
    <link>https://opennet.ru/openforum/vsluhforumID8/5373.html#1</link>
    <pubDate>Sun, 18 Nov 2007 07:17:27 GMT</pubDate>
    <description>Кроме group by id с вытаскиванием sum(count) ничего вроде и не сделать. Насколько медленно? Какая БД? Если есть возможность можно снапшот (Materialized View) оcвежать по расписанию. Динамика то у таблицы наверное небольшая в пределах допустимых погрешностей.&lt;br&gt;</description>
</item>

</channel>
</rss>
