Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Медленная скорость запроса / 5 сообщений из 5, страница 1 из 1
08.04.2004, 17:50
    #32474278
AlexPretov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Медленная скорость запроса
Народ, помогите разобраться почему запрос
Код: plaintext
 select * from F left join A on F.Addr between A.AddrBegin and A.AddrEnd;
отработает очень долго?

Таблица А проиндексирована по полям AddrBegin и AddrEnd:
Код: plaintext
create index AddrBE on A (AddrBegin, AddrEnd);
Команда Explain пишет, что оптимизатор будет использовать инлекс и.... тормоза.

Если таблицу А преобразовать в перечисление адресов, то запрос
Код: plaintext
 select * from F left join A on F.Addr = A.Addr;
отработает на ура.

________________
С уважением, Alex Pretov
...
Рейтинг: 0 / 0
09.04.2004, 16:24
    #32475883
cid
cid
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Медленная скорость запроса
Попробуй так
select * from F left join A on (F.Addr = A.Addr)
where
between A.AddrBegin and A.AddrEnd;
думаю поможет, а то без where как то плохо :)
...
Рейтинг: 0 / 0
09.04.2004, 19:25
    #32476154
AlexPretov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Медленная скорость запроса
нет. смысл в том что в первом запросе выбираются все записи с адресами, которые попадают в диапазон от AddrBgin до AddrEnd
а во втором, этот диапазон просто разворачивается в перечисление внешней утилитой (я пока ничего другого не предумал) и уже по прямому соответсвию я и получаю искомое подмножество.

________________
С уважением, Alex Pretov
...
Рейтинг: 0 / 0
09.04.2004, 21:28
    #32476223
guest
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Медленная скорость запроса
попробуй построить два индекса: один по beginaddr а второй по endaddr
...
Рейтинг: 0 / 0
13.04.2004, 13:06
    #32478964
AlexPretov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Медленная скорость запроса
guestпопробуй построить два индекса: один по beginaddr а второй по endaddr
не помогает. такая же медленная скорость. Сложный запрос для того чтобы он запись находил по beginaddr а значение endaddr считывал уже с индекса
________________
С уважением, Alex Pretov
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Медленная скорость запроса / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]