59,2
Карма
48,8
Рейтинг
Боровиков Кирилл @Kilor

Архитектура информационных систем, базы данных

Значки
  • Захабренный
  • Старожил
Зарегистрирован

4 февраля 2012

Приглашен

26 ноября 2019 по приглашению от НЛО

О себе

Мониторим и оптимизируем запросы PostgreSQL оптом и в розницу.
Строим сложные системы для бизнеса. Придумываем алгоритмы и реализуем в коде.

Оптимизация SQL-запросов в PostgreSQL
Понимаем планы PostgreSQL-запросов еще удобнее
Рецепты для хворающих SQL-запросов (видео)
Массовая оптимизация запросов PostgreSQL (видео)
О чем молчит EXPLAIN, и как его разговорить

PostgreSQL Antipatterns:
SELF JOIN vs WINDOW
накручиваем себе проблемы
насколько глубока кроличья нора? пробежимся по иерархии
навигация по реестру
вычисление условий в SQL
сражаемся с ордами «мертвецов»
сказ об итеративной доработке поиска по названию
меняем данные в обход триггера
ударим словарем по тяжелому JOIN
редкая запись долетит до середины JOIN
обновляем большую таблицу под нагрузкой
передача наборов и выборок в SQL
сизифов JOIN массивов
статистика всему голова
вредные JOIN и OR
CTE x CTE

SQL HowTo:
1000 и один способ агрегации
пишем while-цикл прямо в запросе, или «Элементарная трехходовка»
собираем «цепочки» с помощью window functions
рисуем морозные узоры на SQL

DBA:
кто скрывается за блокировкой
в погоне за пролетающими блокировками
мониторинг базы PostgreSQL — кто виноват, и что делать
грамотно организовываем синхронизации и импорты
находим бесполезные индексы
перенос значений SEQUENCE между базами PostgreSQL
когда пасует VACUUM — чистим таблицу вручную
вычищаем клон-записи из таблицы без PK

Решения для PostgreSQL
Классифицируем ошибки из PostgreSQL-логов
Как мы в СБИС автоматический расчет себестоимости делали (видео)
Экономим копеечку на больших объемах в PostgreSQL
Пишем в PostgreSQL на субсветовой: 1 host, 1 day, 1TB
Фантастические advisory locks, и где они обитают
PubSub почти бесплатно: особенности NOTIFY в PostgreSQL
БД мессенджера (ч.2): секционируем «наживую»
БД мессенджера (ч.1): проектируем каркас базы

Решения для NodeJS
Хеш+кэш: оптимизация «потоковой» обработки
Большие аппетиты маленьких Buffer в Node.js
Микропост: режем UNICODE-строки для PostgreSQL