powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Какой из запросов лучше?, not exist / left join ... is null
3 сообщений из 3, страница 1 из 1
Какой из запросов лучше?, not exist / left join ... is null
    #39206841
lex-romanow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет. Хочу услышать мнения опытных людей, какой из абсолютно одинаковых запросов лучше?

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
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
)


Код: sql
1.
2.
3.
4.
5.
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 у меня сразу отпал, как самый худший.

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

Код: html
1.
2.
3.
"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"


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

Код: html
1.
2.
3.
"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)"


Индексы я пока не применял, меня другое интересует.
...
Рейтинг: 0 / 0
Какой из запросов лучше?, not exist / left join ... is null
    #39206845
bochkov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mysql джоинами более предсказуемо работает,
а вот с вложенными запросами - по-разному
...
Рейтинг: 0 / 0
Какой из запросов лучше?, not exist / left join ... is null
    #39206846
lex-romanow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
bochkov,

спасибо, учту
останется индексы правильно сделать, дабы rows верно указывало, сейчас предполагаемое значение ставит оптимизатор
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Какой из запросов лучше?, not exist / left join ... is null
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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