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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> последовательность выполнения SQL (where) 
:(
    Опции темы
godsgame
Дата 24.1.2007, 20:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



сабж.

Вопрос чисто ради интереса, как MySQL выполнит данный запрос:

Код

select * from `test` where `a` + `b` = 100  AND  `c` > 15


я думаю, что скорость выполнения от этого тоже зависит.

т.е тут 2 варианта:
1) выборка на основе c > 15 и потом проверка суммы 
2) или сначала считаем сумму, а потом проверка c

в какой последовательности??
PM MAIL   Вверх
muzer
Дата 24.1.2007, 21:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



А что мешает проверять одновременно оба условия?

Одно условие проверяется тогда, когда по ниму есть индекс, отобрав строки по которому можно существенно сократить объёмы необходимые для фулл скана.
PM WWW   Вверх
Gold Dragon
Дата 25.1.2007, 09:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

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



По моему как парсится сам код, в такой последовательности и проверяется
 smile 


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
Glip
Дата 25.1.2007, 13:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



попробуйте explain то есть explain select ....  и разные варианты компоновки where 


--------------------
user posted image
PM MAIL   Вверх
skyboy
Дата 25.1.2007, 14:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

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



Цитата(godsgame @  24.1.2007,  19:00 Найти цитируемый пост)
я думаю, что скорость выполнения от этого тоже зависит.

есть такой механизм. называется "оптимизатор". от него и зависит, в какой последовательности будут выполняться условия. Редко когда можно как-то на него повлиять. Максимум, что мне известно - форсировать использование определенного индекса. А последовательность - всецело на нем. 
Потому чтоб ускорить процесс выполнения, нечего копаться в "низкоуровневых" вопросах вроде последовательности. Лучше интересуйся наличием необходимых ключей, "правильными" SQL - запросами(попадались мне на глаза функции IF в секции ON у JOIN'ов  smile ), отсутствием избыточных действий(группировка по уникальным значениям(главные ключи, поля DISTINCT - запроса), сортировка уже отсортированного и т.д.) и нормальной(не столько в понимании "нормальной формы", сколько вдумчивого подхода к проектированию) структуры таблиц. 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




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


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

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