Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Какой из запросов лучше? not exist / left join ... is null 
:(
    Опции темы
swordfishik
Дата 3.4.2016, 13:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 23.1.2008

Репутация: нет
Всего: нет



Всем привет. Хочу услышать мнения опытных людей, какой из абсолютно одинаковых запросов лучше?

Код
SELECT a.`client_bid_id`
FROM `client_bid` a
WHERE a.`client_bid_blocked` = 'n'
AND NOT EXISTS
(
SELECT 1
FROM `client_login` b
WHERE b.`client_id` = a.`client_id`
AND b.`client_login_type` = 'success'
AND b.`client_login_date` > NOW() - INTERVAL 1 HOUR
)

Код
SELECT a.`client_bid_id`
FROM `client_bid` a
LEFT JOIN `client_login` b ON (b.`client_id` = a.`client_id` AND b.`client_login_type` = 'success' AND b.`client_login_date` > NOW() - INTERVAL 1 HOUR)
WHERE a.`client_bid_blocked` = 'n'
AND b.`client_id` IS NULL

Прочитал довольно много, но так и не решил для себя - в каких случаях лучше not exits, а в каких - left join ... is null.

not in у меня сразу отпал, как самый худший.

План первого запроса:

Код
"id"    "select_type"    "table"    "type"    "possible_keys"    "key"    "key_len"    "ref"    "rows"    "Extra"
"1"    "PRIMARY"    "a"    "ALL"    \N    \N    \N    \N    "12"    "Using where"
"2"    "DEPENDENT SUBQUERY"    "b"    "ALL"    \N    \N    \N    \N    "1"    "Using where"

План второго запроса:

Код
"id"    "select_type"    "table"    "type"    "possible_keys"    "key"    "key_len"    "ref"    "rows"    "Extra"
"1"    "SIMPLE"    "a"    "ALL"    \N    \N    \N    \N    "12"    "Using where"
"1"    "SIMPLE"    "b"    "ALL"    \N    \N    \N    \N    "1"    "Using where; Not exists; Using join buffer (Block Nested Loop)"

Индексы я пока не применял, меня другое интересует.
PM MAIL   Вверх
tzirechnoy
Дата 4.4.2016, 14:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1173
Регистрация: 30.1.2009

Репутация: 3
Всего: 16



Цитата
Индексы я пока не применял, меня другое интересует.


И что в таком случае Вас интересует?

Цитата
но так и не решил для себя - в каких случаях лучше 


Кинь монетку.
PM MAIL   Вверх
_zorn_
Дата 8.4.2016, 17:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1077
Регистрация: 21.8.2007

Репутация: 2
Всего: 12



Цитата(tzirechnoy @  4.4.2016,  21:56 Найти цитируемый пост)
Кинь монетку. 

 smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




[ Время генерации скрипта: 0.1141 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.