Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
Индексы в BETWEEN при join-е (RXL) 19/03/2003 - 14:55:33
      Re: Индексы в BETWEEN при join-е (Dinky) 19/03/2003 - 18:30:23
      Re: Индексы в BETWEEN при join-е (Валентин) 19/03/2003 - 20:58:15
      Re: Индексы в BETWEEN при join-е (XODOK) 20/03/2003 - 03:52:15
      Re: Индексы в BETWEEN при join-е (RXL) 20/03/2003 - 14:06:45
      Re: Индексы в BETWEEN при join-е (Валентин) 20/03/2003 - 17:01:27
      Re: Индексы в BETWEEN при join-е (Dinky) 20/03/2003 - 19:49:20
      Re: Индексы в BETWEEN при join-е (RXL) 21/03/2003 - 12:56:17



From: RXL - 19/03/2003 - 14:55:33
Subject:Индексы в BETWEEN при join-е
-----------------
Мучаюсь вот такой проблемой.
Есть две таблицы:
t1 - много строк (сейчас 106т, прирост 1-10т/сутки).
id int not null unique,
...полезная нагрузка...
t2 - мало строк (16 строк, прирост 8/сутки).
begin int not null,
end int NULL,
...прочие данные...

В каждой строке таблицы t2 в полях begin и end хранится диапазон для t1.id . Нужно выбрать все строки в t1 соответствующие каждой строке в t2 (для всех строк t2).

SELECT t1.* FROM t1,t2 WHERE t1.id BETWEEN t2.begin AND t2.end AND t2.end IS NOT NULL;

Запрос работает правильно, но слишком долго - EXPLAIN говорит:

table type possible_keys key key_len ref rows Extra
t2 ALL NULL NULL NULL NULL 16 where used
t1 ALL serial NULL NULL NULL 106422 where used

Если убрать из запроса t2 и в BETWEEN поставить константы, то запрос проходит мнговенно.

Пробовал разные виды JOIN-а. Читал мануал (и не раз, и не только сейчас ;) - BETWEEN допускается для работы с индексами. Не пойму в чем дело - как должно работать логически понятно, а как работает - нет. Кто-нибудь знает в чем дело?
Версия MySQL 3.23.49.



[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
7323



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |