Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Время выполнения запроса
|
|||
|---|---|---|---|
|
#18+
SELECT * FROM t1 LEFT JOIN t2 on t1.id = t2.t1_id LEFT JOIN t3 on t1.id = t3.t1_id LEFT JOIN t4 on t1.id = t4.t1_id LIMIT 20 OFFSET start start - значение offset Подскажите пожалуйста как постгрес работает с такими запросами, сначала делает выборку а потом применяет лимит? И как по времени различаются такой запрос с лимитом и без него? И если менять start = 0, start = 50 000 И насколько это будет тяжёлый запрос при кол-вы записей в каждой таблице ~ 100 000 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2008, 09:54 |
|
||
|
Время выполнения запроса
|
|||
|---|---|---|---|
|
#18+
laserсначала делает выборку а потом применяет лимит? И если менять start = 0, start = 50 000последний этап выполнения запроса Limit получает от нижестоящего только offset+limit строк. смотрите explain analyze. laserИ как по времени различаются такой запрос с лимитом и без него?запрос с limit часто более быстрый, особенно если выполняется без сортировки. смотрите explain analyze. laserИ насколько это будет тяжёлый запрос при кол-вы записей в каждой таблице ~ 100 000смотрите explain analyze. PS: limit, offset имеют смысл только с order by ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2008, 11:06 |
|
||
|
Время выполнения запроса
|
|||
|---|---|---|---|
|
#18+
LeXa NalBatPS: limit, offset имеют смысл только с order by Почему? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2008, 11:11 |
|
||
|
Время выполнения запроса
|
|||
|---|---|---|---|
|
#18+
А что предпочтительней SELECT * FROM t1 LEFT JOIN t2 on t1.id = t2.t1_id LEFT JOIN t3 on t1.id = t3.t1_id LEFT JOIN t4 on t1.id = t4.t1_id или SELECT * FROM t1, t2, t3, t4 WHERE t1.id = t2.t1_id AND t1.id = t3.t1_id AND t1.id = t4.t1_id ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2008, 11:13 |
|
||
|
Время выполнения запроса
|
|||
|---|---|---|---|
|
#18+
laserLeXa NalBatPS: limit, offset имеют смысл только с order byПочему?потому что строки в РБД не упорядочены ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2008, 11:13 |
|
||
|
Время выполнения запроса
|
|||
|---|---|---|---|
|
#18+
laserА что предпочтительней SELECT * FROM t1 LEFT JOIN t2 on t1.id = t2.t1_id LEFT JOIN t3 on t1.id = t3.t1_id LEFT JOIN t4 on t1.id = t4.t1_id или SELECT * FROM t1, t2, t3, t4 WHERE t1.id = t2.t1_id AND t1.id = t3.t1_id AND t1.id = t4.t1_idэти запросы могут вернуть разный результат. если заменить LEFT на INNER, то такие запросы эквивалентны. скорее всего постгрес поймет что это одинаковые запросы и выберет для них одинаковый план выполнения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2008, 11:16 |
|
||
|
|

start [/forum/topic.php?fid=53&msg=35681251&tid=2003841]: |
0ms |
get settings: |
11ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
63ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
| others: | 237ms |
| total: | 404ms |

| 0 / 0 |
