#0
by bublegum
MySQL Сделал три запроса дающих нужный результат, какой быстрее? #1 select (select datetime from t1 where t1.key = p.key) datetime from ( SELECT key FROM t2 GROUP BY key ) p #2 SELECT datetime FROM t1 where t1.key in ( SELECT key FROM t2 ) # GROUP BY key??? #3 SELECT t1.datetime FROM t1 JOIN t2 ON t1.key = t2.key GROUP BY datetime
#4
by Кирпич
Быстрее тот, который быстрее. Напиши за какое время выполняется запросы и мы тебе скажем какой из них быстрее.
#7
by DionisSergeevich
join должен быть быстрее подзапросов. Хотя проще написать функцию замера времени и проверить
#9
by bublegum
все нужные индексы есть 0 секунд порядок только разный, если добавить сортировку в конце, будет совсем одинаково.
#13
by bublegum
Сортировка после выполнения запроса не повлияет на результат соревнования по скорости, поэтому я ее сократил для простоты.
#18
by Ёпрст
t1 datetime key 01.01.01 Вася 02.01.01 Вася 03.01.01 Вася 01.01.01 Федя 02.01.01 Федя 03.01.01 Федя t2 datetime key 22.01.01 Вася 11.01.01 Федя 1 запрос выдаст ошибку, ибо для ключа Вася есть 3 записи, а коррелированный подзапрос select (select datetime from t1 where t1.key = p.key) должен выдавать одну (top 1 там нужен или макс или еще как) 2 запрос выдаст ошибку , ибо при group by key есть куча datetime не в агригирующей функции 3 запрос 01.01.01 02.01.01 03.01.01
#27
by bublegum
название говорит само за себя. Извините что забыл написать что оно уникально. group by можно убрать для упрощения.
#28
by ЧеловекДуши
Тот который будет вызван второй раз :) SQL так весело выполняет повторный запрос, что по сути сложно оценить ту или иную скорость :)
#31
by Fragster
посути - надо курить . если там для всех запросов одинаково, то и время выполнения будет одинаково
#33
by Simod
Перед выполнением текст запроса проходит через оптимизатор, который составляет план запроса. Поэтому для всех 3-х запросов может быть составлен один план и как следствие одинаковое время.
#39
by ОдинСерый
все не правильные :))))) джойн и груп бы это самые тормоза , их не надо употреблять или в крайних случаях. SELECT t1.datetime FROM t1 ,( SELECT distinct key FROM t2 ) t2 where t1.key = t2.key
#40
by Simod
Как-бы уже сказали, что key уникален и нужды в distinct нет. А запрос равнозначен join, просто старая форма записи.
#41
by ОдинСерый
:)))))) ыыыы нет старых форм и новых... . как бы скуль он стандартизирован. з.ы. и разницы нет когда десят записей.а когда будет 10млн то разница будет
#43
by ОдинСерый
ыыыыыыы. еще раз для упертых. есть стандарты . а есть sql server от МС это разные вещи.
#44
by Туц
Если key уникальный то в 1 #1 SELECT key FROM t2 GROUP BY key не нужен просто select datetime from t1 where key in (select key from t2)
#45
by Туц
тогда и 3 ещё лучше сделать так SELECT distinct t1.datetime FROM t1 INNER JOIN t2 ON t1.key = t2.key да и как верно было подмеченно, запросы разные в плане результата.
#46
by bublegum
с JOIN получается немного быстрее, но только если есть индекс по t1.datetime. Не понятно почему. Если нет индекса по t1.datetime, то индексы в t1 вообще не используются, даже по key. Не понятно
Тэги: Админ
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
В этой группе 1С
- Чем можно вычитать html-файл в ТАБЛИЧНЫЙ ДОКУМЕНТ?
- Ошибка СУБД: Файл базы данных поврежден 1Cv8.1CD
- Как заполнять документ Word из 1С.
- 1C ERP Ресурсные спецификации
- Canon I-SENSYS LBP2900 Windows 7 x64 по сети полный пипец
- Подключение к LDAP на сервере и на клиенте
- Графики функций в 1С
- Как динамически отключить вывод подчиненных группировок в СКД
- Ошибка при загрузке из Excel. УТ11
- КД2 выгрузка документа
- ПодготовитьФормуНаСервере или ПриСозданииНаСервере?
- v8: УФ Как открыть другую форму этого же объекта?
- Как получить уникальный идентификатор в запросе?
- Настройки прокси из 1С
- v7: ПУБ после закрытия месяца на 43 сч образовался отрицательный суммовой остаток
- БГУ перемещение ОС со счета на счет.
- ЗУП 8.2 Как исправить продолжение больничного
- Печатные формы в управляемом приложении 1с 8.2 управление небольшой фирмой
- Как значение реквизита из одной формы поместить в другую форму?
- как подключиться к базе mysql скуд сфинкс из 1с?