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




MySQL.RU - Webboard



Вернуться
Тормоза с вложенными запросами (Timur) 26/04/2007 - 22:36:00
      Re: Тормоза с вложенными запросами (AXAE) 27/04/2007 - 10:50:15
      Re: Тормоза с вложенными запросами (Timur) 27/04/2007 - 20:53:17
      Re: Тормоза с вложенными запросами (AXAE) 28/04/2007 - 07:08:37
      Re: Тормоза с вложенными запросами (Timur) 30/04/2007 - 17:38:06
      Re: Может три таблицы попробовать (AXAE) 04/05/2007 - 14:35:47
      Re: Может три таблицы попробовать (Timur) 04/05/2007 - 15:14:17

> Original message text:
> From: Timur - 26/04/2007 - 22:36:00
> Subject:Тормоза с вложенными запросами
> -----------------
> Используется такой запрос:
> SELECT object_id,x,y FROM kiev2_data where object_id
> IN ( select distinct object_id from kiev2_data where (x between 50.448532 and 50.448532) and (y between 30.257377 and 30.257377) )
> Он выполянется секунд 5.
>
> Если же выполнить эти запросы отдельно(результаты вложенного подставить вручную), то оба они выполняются за сотые доли секнды.
>
> MySQL 5.0.37
> Может кто нибудь знает в чём проблема?
>
>
>


From: Timur - 30/04/2007 - 17:38:06
Subject:Тормоза с вложенными запросами
-----------------
Ecplain:
1, 'PRIMARY', 'kiev2_data', 'ALL', '', '', '', '', 17691, 'Using where'
2, 'DEPENDENT SUBQUERY', 'kiev2_data', 'index_subquery', 'obj_id', 'obj_id', '4', 'func', 7, 'Using where'

То что равны верхняя и нижняя граница - не обращай внимания, это для упрощния, чтобы попадала только одна точка( виноват, это конечно путает).

Что я хочу... Пример таблицы:
object_id, x, y
1, 50.448532, 30.257377
1, 50.448188, 30.252227
1, 50.447845, 30.248107
1, 50.447502, 30.241928
2, 50.449562, 30.27317
2, 50.448532, 30.257377
Если мы сделаем запрос:
SELECT object_id,x,y FROM kiev2_data WHERE (x BETWEEN 50.448532 AND 50.448532) AND (y BETWEEN 30.257377 AND 30.257377)
как ты говорил в первом ответе то получим только первую и предпоследнюю строку.
Я же хочу чтобы если хоть одна точка объекта попадает в диапазон, то выбирались все точки объекта, т.е. для используемого нами диапазона должны выбираться все строки приведённой выше таблицы, т.к. одна точка объекта с object_id=1 и одна точка объекта с object_id=2 попадают в диапазон.



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

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

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



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