|
|
|
Помогите! OR - как убийца запроса
|
|||
|---|---|---|---|
|
#18+
Здравствуйте. Имеется запрос: Код: sql 1. Выполняется он так долго, что даже прождав час я не смог получить результата. Если изменить OR на AND, то запрос выполнится мгновенно. Не могу никак определить почему же с OR он виснет? Эксплейн запроса: Код: sql 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2013, 14:14:53 |
|
||
|
Помогите! OR - как убийца запроса
|
|||
|---|---|---|---|
|
#18+
Vladimit04Выполняется он так долго, что даже прождав час я не смог получить результата. Если изменить OR на AND, то запрос выполнится мгновенно. Не могу никак определить почему же с OR он виснет? потому, что с OR - это декартовое произведение 100500 записей из a на 1-ну запись из b + декартовое произведение 100500 записей из b на 1-ну запись из a c AND - это декартовое произведение 1-ой записи из a на 1-ну запись из b --- а вопрос - из "спортивного интиреса" или у запроса есть какая-то "вменяемая" постановка ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2013, 14:23:28 |
|
||
|
Помогите! OR - как убийца запроса
|
|||
|---|---|---|---|
|
#18+
Ясно. Значит проблема в сложности запроса, вот он и зависает. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2013, 14:32:53 |
|
||
|
Помогите! OR - как убийца запроса
|
|||
|---|---|---|---|
|
#18+
Vladimit04, нет. Проблема в несвязанности таблиц промеж себя и отсутствии индексов. Вам точно нужны: "все 100500 имен из А для одного Б" И "все 100500 имен из Б для одного А"? ХШ подсказывает что нужно что-то другое... мож в сторону union посмотреть... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2013, 14:49:08 |
|
||
|
|

start [/forum/topic.php?fid=47&fpage=218&tid=1836456]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
29ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
25ms |
get tp. blocked users: |
1ms |
| others: | 212ms |
| total: | 301ms |

| 0 / 0 |
