powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помогите разобраться с темой ключевых слов ANY и ALL
2 сообщений из 27, страница 2 из 2
Помогите разобраться с темой ключевых слов ANY и ALL
    #40032498
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dante80
booby,

Я сформулировал свой вопрос по данной теме.
Что если будут сравниваться 2 множества, как в данных примерах которые я указывал в теме? Вы привели пример сравнения переменной с множеством, а в какой последовательности будет происходить сравнение двух множеств?

Приведу первый пример из данной темы:

WHERE type = 'pc' AND
NOT model = ANY (SELECT model
FROM PC
);

Сравнивается множество Product.model с множеством из другой таблицы PC.model. Каким образом происходит взаимодействие между этими двумя множествами? Как я предполагаю, берется первый элемент из Product.model и сравнивается с каждым из элементов PC.model? И так по очереди? Меня сам процесс сравнения между множествами интересует в данном примере.


Если подселект SELECT model FROM PC так как он тут приведен (без проброса внешнего условия вовнутрь) то да, так или иначе, но на каждую выборку записи основного запроса Мускуль (да и любая иная СУБД) будет производить поиск в множестве значений подзапроса. Оптимизировать тут, как понимаю можно только предвыборку данных подзапроса, сложив например во временную табличку .. опять же зависит от размера.

Любые варианты с OR в списке условий (явно или завуалировано) кмк всегда работают хуже чем инвертированное условие и AND, но такое не всегда возможно. Если OR не велик, то кмк предпочтительнее UNION.
...
Рейтинг: 0 / 0
Помогите разобраться с темой ключевых слов ANY и ALL
    #40032712
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dante80Как я предполагаю, берется первый элемент из Product.model и сравнивается с каждым из элементов PC.model? И так по очереди?да, до первого TRUE в случае ANY

Dante80Что если будут сравниваться 2 множества, как в данных примерах которые я указывал в теме? Вы привели пример сравнения переменной с множеством, а в какой последовательности будет происходить сравнение двух множеств?без ORDER BY для таблицы (множества) порядок не гарантирован в БД, т.е как будет сравнивать БД - сказать определенно нельзя. Скажем так - как лежат данные на "диске" - так и будет сравнивать, а как они лежат - неизвестно.
...
Рейтинг: 0 / 0
2 сообщений из 27, страница 2 из 2
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помогите разобраться с темой ключевых слов ANY и ALL
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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