Боровиков Кирилл
@Kilor
Архитектура информационных систем, базы данных
- Значки
- Захабренный
- Старожил
- Приглашен
- по приглашению от НЛО
- О себе
- Мониторим и оптимизируем запросы PostgreSQL оптом и в розницу.
Строим сложные системы для бизнеса. Придумываем алгоритмы и реализуем в коде.
Нетривиальные подходы к решению тривиальных задач.
Дайджест:
— PostgreSQL в «Тензоре» — публикации за год
Анализ запросов в PostgreSQL:
— One Tool to Analyze Them All
— Анализируем «слона» по частям
— PostgreSQL Query Profiler: как сопоставить план и запрос
— Правильно [c]читаем параллельные планы PostgreSQL
— Вооруженным глазом: наглядно о проблемах PostgreSQL-запроса
— Понимаем планы PostgreSQL-запросов еще удобнее
— Рецепты для хворающих SQL-запросов (видео)
— Массовая оптимизация запросов PostgreSQL (видео)
— О чем молчит EXPLAIN, и как его разговорить
PostgreSQL Antipatterns и оптимизация SQL:
— скованные одной цепью EXISTS
— DBA-детектив, или Три дела о потерянной производительности
— работаем с отрезками в «кровавом энтерпрайзе»
— убираем медленные и ненужные сортировки
— «Бесконечность — не предел!», или Немного о рекурсии
— уникальные идентификаторы
— «Должен остаться только один!»
— SELF JOIN vs WINDOW
— накручиваем себе проблемы
— насколько глубока кроличья нора? пробежимся по иерархии
— навигация по реестру
— вычисление условий в SQL
— сражаемся с ордами «мертвецов»
— сказ об итеративной доработке поиска по названию
— меняем данные в обход триггера
— ударим словарем по тяжелому JOIN
— редкая запись долетит до середины JOIN
— обновляем большую таблицу под нагрузкой
— передача наборов и выборок в SQL
— сизифов JOIN массивов
— статистика всему голова
— вредные JOIN и OR
— CTE x CTE
SQL HowTo:
— рейтинг-за-интервал
— префиксный FTS-поиск с релевантностью по дате
— ломаем мозг об дерево — упорядочиваем иерархию с рекурсией и без
— PostgreSQL 13: happy pagination WITH TIES
— курсорный пейджинг с неподходящей сортировкой
— красивые отчеты по «дырявым» данным — GROUPING SETS
— 1000 и один способ агрегации
— пишем while-цикл прямо в запросе, или «Элементарная трехходовка»
— собираем «цепочки» с помощью window functions
— рисуем морозные узоры на SQL
DBA:
— Ночной Дозор
— кто скрывается за блокировкой
— в погоне за пролетающими блокировками
— мониторинг базы PostgreSQL — кто виноват, и что делать
— грамотно организовываем синхронизации и импорты
— находим бесполезные индексы
— перенос значений SEQUENCE между базами PostgreSQL
— когда пасует VACUUM — чистим таблицу вручную
— вычищаем клон-записи из таблицы без PK
Решения для PostgreSQL
— Телепортация тонн данных в PostgreSQL
— У меня зазвонил телефон. Кто говорит?.. Поможет «слон»
— Классифицируем ошибки из PostgreSQL-логов
— Как мы в СБИС автоматический расчет себестоимости делали (видео)
— Экономим копеечку на больших объемах в PostgreSQL
— Пишем в PostgreSQL на субсветовой: 1 host, 1 day, 1TB
— Фантастические advisory locks, и где они обитают
— PubSub почти бесплатно: особенности NOTIFY в PostgreSQL
— БД мессенджера (ч.2): секционируем «наживую»
— БД мессенджера (ч.1): проектируем каркас базы
Решения для NodeJS
— Первый парсер на деревне
— Immutable Trie: найди то, не знаю что, но быстро, и не мусори
— Динамическая балансировка нагрузки в pull-схеме
— Хеш+кэш: оптимизация «потоковой» обработки
— Большие аппетиты маленьких Buffer в Node.js
— Микропост: режем UNICODE-строки для PostgreSQL
- Состоит в хабах
- Пригласил на сайт
- Подписан на компании