Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.03.2012, 19:02   #1
CaHb4ec
Пользователь
 
Регистрация: 02.01.2012
Сообщений: 25
По умолчанию Сравнение дат и выборка

Здравствуйте.
Есть таблица подобного вида:
table
id | theme_id | comment | usr_id | a_date
Необходимо вытащить theme_id, у которых a_date не старше 20 минут от нынешнего времени (NOW()).
Реализую так:
select theme_id from table where a_date>SUBDATE(NOW(),INTERVAL 20 MINUTE) GROUP BY theme_id ORDER BY a_date DESC;
Вопрос:
Поможет ли мне сортировка по дате не выбирать и не сравнивать все записи, а только до той, что будет входить в интервал или, даже дойдя до крайней необходимой записи и, зная, что дальше даты будут еще старше (сортировка), будет продолжено сравнение даты в таблице с нынешней? Это важно, потому что записей в таблице будет достаточно много, и не хотелось бы нагружать бессмысленной проверкой.
Ну и вообще, стоит ли заниматься сравнением в самой базе или лучше реализовывать сравнение, пользуясь средствами php.
CaHb4ec вне форума Ответить с цитированием
Старый 11.03.2012, 20:10   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

ORDER BY, если правильно понял, не способствует опимизация запроса, и времени на выполнение потребуется больше, чем без ORDER BY. Наличие в таблице индекса по полю a_date существенно ускорит выборку
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 11.03.2012, 20:48   #3
CaHb4ec
Пользователь
 
Регистрация: 02.01.2012
Сообщений: 25
По умолчанию

Т.е. порядок такой: сначала выборка по условию, затем группировка и потом уже сортировка? Я правильно понимаю?
CaHb4ec вне форума Ответить с цитированием
Старый 11.03.2012, 21:01   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Однозначно не могу утвержать, что оптимизация во всех СУБД не учитывает ORDER BY. Возможно продвинутые оптимизаторы и учитывают при определенных условиях. Из опыта на MSSQL - с ORDER BY на больших выборках запрос медленней отрабатывает
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 11.03.2012, 21:41   #5
CaHb4ec
Пользователь
 
Регистрация: 02.01.2012
Сообщений: 25
По умолчанию

Аватар, спасибо за информацию
CaHb4ec вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
выборка из таблицы по диапазону дат strannick Microsoft Office Excel 4 12.12.2011 17:18
Сравнение дат! RSmile БД в Delphi 0 28.04.2010 20:40
C#: Сравнение дат Veiron Общие вопросы .NET 1 08.06.2009 23:32
Сравнение дат for_regist1 БД в Delphi 21 26.01.2009 01:29
сравнение дат Geddar Общие вопросы Delphi 2 04.06.2008 19:09