|
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
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, безрезультатно.
[Это сообщение - спам!]
Последние сообщения из форума
Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL,
версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
9560
|
|