Size: a a a

2020 April 17

DP

Denis Podlesnykh in Peer Lab SPB
Quantum Harmonizer
Созданы недавно. Всё старше недели можно архивировать.
Сейчас они вообще не вытаскиваются, тупо мёртвый груз. Мне кажется, что можно иногда захотеть вытаскивать их по айди.
Есть, старые заявки ссылаются на город отправления и город назначения.
Ага, понятно. Сначала я бы убедился, что индексы на таблицу, запросы и JOIN-ы написаны наиболее оптимальным способом (нужный порядок названий колонок во множественных индексах и SELECT-ах, нету “лишних” индексов и влоденных SELECT * WHERE ... IN SELECT … WHERE .. IN… и тп).

Если все ок, в таком случае, самое простое, что можно сделать на мой взгяд без внедрения timescaledb, таблиц, нарезающихся каждую неделю и переписываня весомой части кода в приложении чтобы с этим работать, это materialized view на таблицу заявок (orders?):
CREATE MATERIALIZED VIEW mymatview AS SELECT * FROM orders WHERE created_date > current_date - interval '7 days';

И повесить на нее индексы. Materialized view хорош тем, что он не вызывает select каждый раз, когда к нему обращаешся, и если у тебя запросов на запись много меньше, чем на чтение, то ты можешь обновлять materialized view хоть при каждом insert-e, (REFRESH MATERIALIZED VIEW CONCURRENTLY mymatview;)

Плюсы такого решения:
+ MATERIALIZED VIEW дает срез данных, нужный тебе чаще всего;
+ Инексы занимают мало места и быстры тк они используют только этот срез данныx;
+ Нет пролем с JOIN-ами, ключами и прочим: их можно сразу включить во VIEW, можно по желанию 🙂
+ Исходная таблица orders растет сколько влезет, раз в месяц можно в ней что-то найти, все отношения сохранены

Минусы:
- Нужно обновлять materialized view по изменению данных в исходной таблице через REFRESH;
- Не решает проблему с постоянно растущей исходной таблицей;

Подробнее
https://www.postgresql.org/docs/current/rules-materializedviews.html  
https://postgrespro.ru/docs/postgrespro/12/rules-materializedviews

Что можно сделать еще:
- Отрезать данные каждые 6-12 месяцев в таблицу orders_archive_XXXX_XX_XX;
- Построить функциональные (https://www.postgresql.org/docs/current/indexes-expressional.html) или GiST индексы для range типов (у тебя это created_at, я так понимаю) (https://www.postgresql.org/docs/current/rangetypes.html#RANGETYPES-INDEXING);
источник

QH

Quantum Harmonizer in Peer Lab SPB
Denis Podlesnykh
Ага, понятно. Сначала я бы убедился, что индексы на таблицу, запросы и JOIN-ы написаны наиболее оптимальным способом (нужный порядок названий колонок во множественных индексах и SELECT-ах, нету “лишних” индексов и влоденных SELECT * WHERE ... IN SELECT … WHERE .. IN… и тп).

Если все ок, в таком случае, самое простое, что можно сделать на мой взгяд без внедрения timescaledb, таблиц, нарезающихся каждую неделю и переписываня весомой части кода в приложении чтобы с этим работать, это materialized view на таблицу заявок (orders?):
CREATE MATERIALIZED VIEW mymatview AS SELECT * FROM orders WHERE created_date > current_date - interval '7 days';

И повесить на нее индексы. Materialized view хорош тем, что он не вызывает select каждый раз, когда к нему обращаешся, и если у тебя запросов на запись много меньше, чем на чтение, то ты можешь обновлять materialized view хоть при каждом insert-e, (REFRESH MATERIALIZED VIEW CONCURRENTLY mymatview;)

Плюсы такого решения:
+ MATERIALIZED VIEW дает срез данных, нужный тебе чаще всего;
+ Инексы занимают мало места и быстры тк они используют только этот срез данныx;
+ Нет пролем с JOIN-ами, ключами и прочим: их можно сразу включить во VIEW, можно по желанию 🙂
+ Исходная таблица orders растет сколько влезет, раз в месяц можно в ней что-то найти, все отношения сохранены

Минусы:
- Нужно обновлять materialized view по изменению данных в исходной таблице через REFRESH;
- Не решает проблему с постоянно растущей исходной таблицей;

Подробнее
https://www.postgresql.org/docs/current/rules-materializedviews.html  
https://postgrespro.ru/docs/postgrespro/12/rules-materializedviews

Что можно сделать еще:
- Отрезать данные каждые 6-12 месяцев в таблицу orders_archive_XXXX_XX_XX;
- Построить функциональные (https://www.postgresql.org/docs/current/indexes-expressional.html) или GiST индексы для range типов (у тебя это created_at, я так понимаю) (https://www.postgresql.org/docs/current/rangetypes.html#RANGETYPES-INDEXING);
Ого. Спасибо!
источник

SS

Sergey Shevelev in Peer Lab SPB
+, про вью совсем забыл
источник
2020 April 18

PT

Peter Tcvetkov in Peer Lab SPB
Всем привет! Завтра в 12:00 проведём онлайн Peerlab
Peer Lab SPb
Time: Apr 19, 2020 12:00 PM Moscow

Join Zoom Meeting
https://us04web.zoom.us/j/71426074575?pwd=R21PTVRMUVhxQ242R3kvcldlQ3A5dz09

Meeting ID: 714 2607 4575
Password: 090525
источник

DS

Daniil S in Peer Lab SPB
Какие темы будут обсуждаться?
источник

DS

Daniil S in Peer Lab SPB
хотя без разницы, главное чтобы не коронавирус
источник

PT

Peter Tcvetkov in Peer Lab SPB
Daniil S
Какие темы будут обсуждаться?
Любые как и всегда
источник

SP

Sergey Petrov in Peer Lab SPB
Daniil S
хотя без разницы, главное чтобы не коронавирус
если хочешь могу рассказать очень аккуратно собранные факты которые сводят к мысли что вирус искуственно создан китайцами
источник

DS

Daniil S in Peer Lab SPB
Sergey Petrov
если хочешь могу рассказать очень аккуратно собранные факты которые сводят к мысли что вирус искуственно создан китайцами
Да, я прочитал то, что ты скидывал. Все очень логично и слажено написано, есть основания в это верить, но мне кажется все уже подустали от этой темы
источник

SP

Sergey Petrov in Peer Lab SPB
Daniil S
Да, я прочитал то, что ты скидывал. Все очень логично и слажено написано, есть основания в это верить, но мне кажется все уже подустали от этой темы
ну кстати британцы и американцы стали всерьез смотреть в эту сторону, потому что чет все слишком хорошо сходится
источник

DS

Daniil S in Peer Lab SPB
Sergey Petrov
ну кстати британцы и американцы стали всерьез смотреть в эту сторону, потому что чет все слишком хорошо сходится
ну значит введут санкции, потрясут денежку и все устаканется.
источник

QH

Quantum Harmonizer in Peer Lab SPB
Sergey Petrov
ну кстати британцы и американцы стали всерьез смотреть в эту сторону, потому что чет все слишком хорошо сходится
с тем, как они «любят» Китай, это они сами и могли написать
источник

SP

Sergey Petrov in Peer Lab SPB
Quantum Harmonizer
с тем, как они «любят» Китай, это они сами и могли написать
слишком длинная многоходовочка чтобы за пять лет до начать вкидывать нужную инфу в интернеты
источник

QH

Quantum Harmonizer in Peer Lab SPB
Sergey Petrov
слишком длинная многоходовочка чтобы за пять лет до начать вкидывать нужную инфу в интернеты
пфф, нет :)
источник

DS

Daniil S in Peer Lab SPB
Sergey Petrov
слишком длинная многоходовочка чтобы за пять лет до начать вкидывать нужную инфу в интернеты
если это так, то они знали что через 5 лет будет пандемия и скрывали это, что преступное упущение. Получается варинт с многоходовочкой маловероятен
источник

QH

Quantum Harmonizer in Peer Lab SPB
я бы сказал, максимально вероятен :)
источник

DS

Daniil S in Peer Lab SPB
Quantum Harmonizer
пфф, нет :)
только если сами через 5 лет не заразили ухань
источник

DS

Daniil S in Peer Lab SPB
а это уже преступление на уровне с фашизмом
источник

QH

Quantum Harmonizer in Peer Lab SPB
Daniil S
только если сами через 5 лет не заразили ухань
Мы не одну и ту же статью читали? Про то, что вирус начинали разрабатывать в Штатах, а потом там запретили и перенесли лабораторию в Ухань
источник

QH

Quantum Harmonizer in Peer Lab SPB
Daniil S
а это уже преступление на уровне с фашизмом
у Штатов полно такого
источник