Под занавес уходящего года предлагаю традиционно вспомнить, про какие интересные возможности и особенности работы с PostgreSQL мы рассказали в нашем блоге.
Если не видели дайджест за прошлый год — время наверстать упущенное!
Курс "PostgreSQL для начинающих"
Продолжаем публикацию лекций курса для тех, кто только-только начинает изучать PostgreSQL.
11.09 — #4 — Анализ запросов (ч.2 — узлы получения данных) (+23, *160)
02.04 — #4 — Анализ запросов (ч.1 — как и зачем читать планы) (+37, *324)
10.01 — #3 - Сложные SELECT (+34, *247)
Анализ запросов в PostgreSQL
Как мы анализируем планы запросов, чтобы сделать их максимально быстрыми.
23.04 — Неожиданные последствия запуска PostgreSQL в Docker: замедление запросов в 100 раз (+93, *292)
Почему быстрый запрос стал медленным на сервере клиента.
11.03 — Бьемся с индексацией парных неравенств в PostgreSQL (+18, *46)
Как можно переписать запрос и какой индекс стоит использовать, если у вас задача отобрать данные сразу по двум диапазонам (x > ca) AND (y > cb)
.
Серия статей по разработке IDE-плагинов для анализа запросов
25.03 — Плагин для анализа планов PostgreSQL в Sublime Text и его разработка (+9, *20)
20.03 — Плагин для анализа планов PostgreSQL в VS Code и его разработка (+11, *48)
06.02 — Плагин для анализа планов PostgreSQL в Eclipse и DBeaver и его разработка (+10, *29)
15.01 — Плагин для анализа планов PostgreSQL в IDE JetBrains и его разработка (+17, *61)
SQL Antipatterns и оптимизация SQL
Как поправить наиболее частые ошибки разработчиков при работе с базой.
14.10 — «вращаем» JSON (+26, *35)
Избавляемся от копипасты при решении задачи поиска подходящей локализации строки.
07.10 — валим «слона» — highload на ровном месте (+28, *106)
Классические ситуации, когда разработчики начинают жаловаться на производительность БД - а виновата-то и не она!
30.09 — устраняем вложенные интервалы (+36, *77)
Как можно в 40 раз ускорить поиск вложенных интервалов на одной таблице.
14.05 — Бэкэнд для начинающих или типовые ошибки бэкэндера (+61, *192)
Разберем типовые ошибки, которые допускаются при работе с SQL‑базами данных в рамках сервиса с высокой нагрузкой и конкурентными запросами.
SQL HowTo
Учимся писать нетривиальные SQL-запросы для решения прикладных задач.
27.12 — рекурсивные циклы и их контроль (Advent of Code 2024, Day 6: Guard Gallivant) (+5, *11)
Тратим 40 минут на выполнение запроса, чтобы понять, как зациклить охранника.
25.12 — поиск в словаре и массивах, сортировка «пузырьком» (Advent of Code 2024, Day 5: Print Queue) (+10, *6)
Сортируем массивы, используя пользовательские правила упорядочивания.
23.12 — работа с массивами (Advent of Code 2024, Day 4: Ceres Search) (+7, *13)
Ищем слово в матрице во всех возможных вариантах написания.
23.12 — «чистые» регулярки (Advent of Code 2024, Day 3: Mull It Over) (+8, *3)
Иногда для решения задачи не нужно ничего, кроме пары регулярок...
23.12 — логические агрегаты (Advent of Code 2024, Day 2: Red-Nosed Reports) (+8, *8)
Учимся анализировать и "переклеивать" массивы.
23.12 — регулярные выражения и условная агрегация (Advent of Code 2024, Day 1: Historian Hysteria) (+9, *13)
Анализируем сходство пары списков.
12.12 — агрегация внутри рекурсии (Advent of Code 2024, Day 11: Plutonian Pebbles) (+19, *20)
Считаем камни с помощью "ветвящейся" рекурсии.
23.09 — Black and White (Puzzle Hunt 2010) (+25, *26)
Используем регулярные выражения, GROUPING SETS, массивы и рекурсию, чтобы разместить плитки на поле.
12.09 — загадка Эйнштейна, или снова Джиндош (+25, *25)
Решаем классическую головоломку "в общем виде" с помощью поисков в массивах и логических агрегатов.
15.03 — один индекс на два диапазона (+21, *49)
Как можно эффективно отбирать данные для решения задачи вроде "найди мне все продажи за декабрь на сумму 10-20K".
Микропостинг
13.08 — Пустой параметр-массив и расширенный navbar (+4, *7)
02.02 — Бесполезный CASE #2 (+7, *4)
25.01 — Бесполезный CASE (+8, *11)