







|
MySQL.RU - Webboard
Вернуться
Связывание двух таблиц в запросе (Юлий) 12/07/2003 - 23:16:35
Re: Связывание двух таблиц в запросе (walrus) 13/07/2003 - 09:23:47
Re: Связывание двух таблиц в запросе (Юлий) 14/07/2003 - 10:36:50
Re: (Anonymous) 14/07/2003 - 13:14:22
Re: Связывание двух таблиц в запросе (walrus) 14/07/2003 - 14:58:23
> Original message text:
> From: Юлий - 12/07/2003 - 23:16:35
> Subject:Связывание двух таблиц в запросе
> -----------------
> Исходная ситуация:
> Есть таблица "Обороты" с колоноками ТМЦ и РасходКво, их выборка занимает 10 сек
> Создал таблицу "ТМЦ", в которой есть колонки: ТМЦ (как в
> "Оборотах") и Родитель1, причем ТМЦ - уник.индекс
>
> далее запрос со связванием этих двух таблиц:
>
> вариант 1
> SELECT p.ТМЦ, SUM(s.РасходКво) FROM Обороты s, ТМЦ p WHERE s.ТМЦ = p.ТМЦ GROUP BY ТМЦ
> идет за те же 10 сек,
>
> вариант 2
> далее хочу еще выбрать Родитель1:
> SELECT p.ТМЦ, p.Родитель1, SUM(s.РасходКво) FROM Обороты s, ТМЦ p WHERE s.ТМЦ = p.ТМЦ GROUP BY ТМЦ
> этот запрос почему-то выполняется за 100 сек, т.е. в 10 раз медленее, но почему ?
>
> проверял выборку командой Explain, она показала, что сначала идет
> выборка строк таблицы "Обороты" и для каждой такой строки (по уник.ключу) находится тот же ТМЦ в таблице "ТМЦ". Таким образом время в варианте 1 вполне обосновано, а почему же в
> варианте 2 оно такое большое, ведь Родитель1 должен браться из этой же строки ?
>
> Пробовал сделать составной индекс (ТМЦ,Родитель1) не помогло, делал его уникальным, неа, делал просто индекс на Родитель1, безрезультатно.
>
From: walrus - 14/07/2003 - 14:58:23
Subject:Связывание двух таблиц в запросе
-----------------
А почему такая уверенность что не из s?
[Это сообщение - спам!]
Последние сообщения из форума
Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL,
версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
9560
|
|