Оптимизация JOIN в PostgreSQL

Хотите ускорить работу сложных SQL-запросов в PostgreSQL? 🚀В этой статье мы разберем, как правильно использовать JOIN, какие методы соединения выбирает PostgreSQL и как их оптимизировать. Узнайте, как индексы, статистика и параметры конфигурации влияют на производительность! 🔥

https://habr.com/ru/articles/883916/

#join #оптимизация_запросов #индексы #dba #оптимизация #план_запроса #производительность #sql_tips_and_tricks #запросы_sql #postgresql_performance

Оптимизация JOIN в PostgreSQL

При написании SQL-запросов с JOIN важно понимать, какой алгоритм соединения выберет PostgreSQL. От этого зависит скорость выполнения запроса, особенно на больших объемах данных. В этой статье...

Хабр

Курс «PostgreSQL для начинающих»: #4 — Анализ запросов (ч.2 — узлы получения данных)

Продолжаю публикацию расширенных транскриптов лекционного курса "PostgreSQL для начинающих" , подготовленного мной в рамках "Школы backend-разработчика" в "Тензоре" . В первой части лекции мы узнали, что такое план выполнения запроса, как и зачем его читать (и почему это совсем непросто), и о каких проблемах с производительностью базы он может сигнализировать. В этой - разберем, что такое Seq Scan , Bitmap Heap Scan , Index Scan и почему Index Only Scan бывает нехорош. Как обычно, для предпочитающих смотреть и слушать, а не читать - доступна видеозапись ( часть 1 , часть 2 ) и слайды .

https://habr.com/ru/companies/tensor/articles/842158/

#postgresql #sql #тензор #школа_backend #explain #план_запроса #seq_scan #index_scan #bitmap_scan

Курс «PostgreSQL для начинающих»: #4 — Анализ запросов (ч.2 — узлы получения данных)

Продолжаю публикацию расширенных транскриптов  лекционного курса "PostgreSQL для начинающих" , подготовленного мной в рамках "Школы backend-разработчика" в  "Тензоре" . В первой части лекции...

Хабр

Оптимизируем Shuffle в Spark

Привет, Хабр! Меня зовут Сергей Смирнов, я аналитик в продукте CVM в X5 Tech. Я занимаюсь разработкой инструмента анализа A/B экспериментов. Мы ежедневно считаем десятки метрик для сотен экспериментов на десятки миллионов клиентов –- это терабайты данных, поэтому наш инструмент разработан на Spark. В последнее время мы заметили, что существенную часть времени работы наших Spark-приложений занимает обмен данными (Shuffle) между исполнителями. В этой статье я расскажу о том, какие оптимизации помогли нам избавиться от самых тяжёлых операций Shuffle. Речь пойдёт не только о BroadcastJoin , но и о двух других неочевидных методах – предварительное репартицирование и бакетирование .

https://habr.com/ru/companies/X5Tech/articles/837348/

#spark #план_запроса #data_analysis #data_engineering #pyspark #shuffle #партицирование_в_spark #бакетирование_в_spark #оптимизация_shuffle #оптимизация_spark

Оптимизируем Shuffle в Spark

Привет, Хабр! Меня зовут Сергей Смирнов, я аналитик в продукте CVM в X5 Tech. Я занимаюсь разработкой инструмента анализа A/B экспериментов. Мы ежедневно считаем десятки метрик для сотен экспериментов...

Хабр

Spark. План запросов на примерах

Всем привет! В этой статье возьмем за основу пару таблиц и пройдемся по планам запросов по нарастающей: от обычного селекта до джойнов, оконок и репартиционирования. Посмотрим, чем отличаются виды планов друг от друга, что в них изменяется от запроса к запросу и разберем каждую строчку на примере партиционированной и непартиционированной таблицы.

https://habr.com/ru/articles/807421/

#apache_spark #pyspark #sql #python #bigdata #data_engineering #explain #execution_plan #план_запроса #dataframe

Spark. План запросов на примерах

Всем привет! В этой статье возьмем за основу пару таблиц и пройдемся по планам запросов по нарастающей: от обычного селекта до джойнов, оконок и репартиционирования. Посмотрим, чем отличаются виды...

Хабр

Курс «PostgreSQL для начинающих»: #4 — Анализ запросов (ч.1 — как и зачем читать планы)

Продолжаю публикацию расширенных транскриптов лекционного курса "PostgreSQL для начинающих" , подготовленного мной в рамках "Школы backend-разработчика" в "Тензоре" . В этой лекции мы узнаем, что такое план выполнения запроса, как и зачем его читать (и почему это совсем непросто), и о каких проблемах с производительностью базы он может сигнализировать. Разберем, что такое Seq Scan , Bitmap Heap Scan , Index Scan и почему Index Only Scan бывает нехорош, чем отличается Materialize от Memoize , а Gather Merge от "просто" Gather . Как обычно, для предпочитающих смотреть и слушать, а не читать - доступна видеозапись ( часть 1 , часть 2 ).

https://habr.com/ru/companies/tensor/articles/790282/

#postgresql #sql #тензор #школа_backend #explain #план_запроса #buffers #i/o_timings

Курс «PostgreSQL для начинающих»: #4 — Анализ запросов (ч.1 — как и зачем читать планы)

Продолжаю публикацию расширенных транскриптов  лекционного курса "PostgreSQL для начинающих" , подготовленного мной в рамках "Школы backend-разработчика" в  "Тензоре" . В этой лекции мы...

Хабр