2012-02-28 7 views
2

Я хотел бы знать, как разбирается SQL-запрос.Как обрабатывается SQL-запрос

Для Eg:

Select count(*) from Users where name = 'John' and age = '24' 

Будет ли принимать количество записей с именем «John», а затем из него фильтр в зависимости от возраста? Или это наоборот?

+1

Это зависит от запросов Parser. –

ответ

1

Запустите функцию Объяснения по вашему запросу или еще лучше включите профайлер запроса.

+0

Это зависит от двигателя. MySQL, SQLite, SQL-сервер и т. Д. Также иногда могут зависеть от того, как ваша база данных узнает эту таблицу (оптимизация на основе поиска и индексации). Стоит также упомянуть, что вам, вероятно, следует больше беспокоиться о графе (*). Идентификатор меняет это значение (1) – Luc

+0

Но не считается (*) и считается (1) с точки зрения производительности? – Chillax

+0

Нет. Большой успех. Ну что ж, из моих знаний – Luc

0

Приоритет выбора/фильтрации не зависит от анализатора, а от оптимизатора. То, как это делается, будет зависеть от ряда проблем, включая механизм базы данных, индексы, установленные в таблицах базы данных, разбиение на таблицы базы данных, объединение в запрос в другие таблицы, условия выбора, включенные в запрос, и т. Д.

Если это специфично для Oracle, то может оказаться полезным основополагающие основы Oracle основанные на знаниях Джонатана Льюиса.

0

он будет фильтровать все ваши записи первого основываясь на том, где (если у вас возникли какие-либо группу, он будет делать это), и после этого он будет считать, что

Смежные вопросы