<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: Не могу сделать SQL запрос быстрее, DISTINCT</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID8/6068.html</link>
    <description>MySQL + PHP&lt;br&gt;&lt;br&gt;Добрый вечер. Пишу систему рейтинг TOP 100.&lt;br&gt;Данный запрос используется при просмотре списка сайтов (TOP 100) и при просмотре TOP 100 по категории(ям).&lt;br&gt;&lt;br&gt;Структура такая - &lt;br&gt;domains&#091;id,...&#093; - сами сайты.&lt;br&gt;main&#091;id,sid,ip....&#093; - для каждого нового пользователя, заходящего на сайт, в эту таблицу вставляется 1 запись. т.е. Хосты. (Тут ещё хранится Разр. экрана,и др. текстовые параметры). &lt;br&gt;session&#091;id,statid,sid&#093;, куда пишется каждый переход пользователя по сайту. statid = main.id (Хиты)&lt;br&gt;domainth&#091;id,theme_id,domain_id&#093; - таблица тем. сами темы в таблице themes, но она не в данном запросе не исп.&lt;br&gt;&lt;br&gt;Индексы все возможные сделал на все поля (id,sid,id+sid,....) Временно, понимаю что криво, позже уберу половину, но врятли из за этого.&lt;br&gt;sid - ид сайта (domains.id)&lt;br&gt;$tids - ID тематик, через запятую, если есть.&lt;br&gt;&lt;br&gt;select &lt;br&gt;  domain.id,domain.title,domain.url,&lt;br&gt;  count(DISTINCT(session.id)) as rank,&lt;br&gt;  domain.flag,domain.desc ,bnr1, bnr2 &lt;br&gt;from domain &lt;br&gt;  left join session on session.sid = domain.id &lt;br&gt; </description>

<item>
    <title>Сделал так : (Аноним)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID8/6068.html#1</link>
    <pubDate>Sat, 08 Nov 2008 17:00:41 GMT</pubDate>
    <description>Сделал так :&lt;br&gt;&lt;br&gt;select domain.id,domain.title,domain.url,count(session.id) as rank,domain.flag,domain.&#096;desc&#096;,bnr1, bnr2&lt;br&gt;from domain&lt;br&gt;  left join session on session.sid = domain.id&lt;br&gt;  left join banners on banners.sid = domain.id&lt;br&gt;where &lt;br&gt; domain.id IN (&lt;br&gt;              SELECT domain_id FROM domainth WHERE theme_id in (4,5,6,7,8,9))&lt;br&gt;group  by domain.id&lt;br&gt;order by rank desc;&lt;br&gt;&lt;br&gt;Вложенный SELECT работает достаточно быстро, т.к. количество доменов не влико.&lt;br&gt;</description>
</item>

</channel>
</rss>
