pgtools: IDE для ежедневной работы с PostgreSQL
Автор pgtools рассказывает, зачем создал бесплатную настольную IDE, какие рабочие задачи она решает и какая обратная связь нужна проекту.
Читать материалИстории, технические статьи и практические разборы pgtools для работы с PostgreSQL.
Автор pgtools рассказывает, зачем создал бесплатную настольную IDE, какие рабочие задачи она решает и какая обратная связь нужна проекту.
Читать материалПрактический разбор блокировок PostgreSQL: почему запросы начинают ждать, как найти корневой blocker, прочитать дерево блокировок и безопасно устранить причину с помощью pgtools.
Читать материалРазбираем, когда PostgreSQL не использует обычный индекс из-за функции в WHERE, как работает индекс по выражению, где помогает lower(email), date_trunc, JSONB-выражения и частичные индексы.
Читать материалПрактический разбор partial index в PostgreSQL: когда частичный индекс ускоряет запросы, чем он отличается от обычного индекса, как его проверить через EXPLAIN ANALYZE и каких ошибок избегать.
Читать материалИнструмент зависимых объектов в pgtools помогает удалить и пересоздать views в правильном порядке при изменении таблиц PostgreSQL.
Читать материалИстория о поиске неиспользуемых индексов через pg_stat_user_indexes и аккуратном освобождении дискового места в PostgreSQL.
Читать материалИстория о том, почему периодические джобы теряют строки на границах интервала и чем now() отличается от clock_timestamp() в PostgreSQL.
Читать материалИстория о случайном DELETE, пользе CTAS-бэкапов, soft-delete и аудита данных перед рискованными изменениями в PostgreSQL.
Читать материалИстория о том, как замена большого B-tree индекса на BRIN помогла быстро освободить место на диске PostgreSQL.
Читать материалКак частые изменения раздувают индексы PostgreSQL, когда помогает REINDEX CONCURRENTLY и какие ресурсы нужны для перестроения.
Читать материалИстория о кандидате, который доверил SQL нейросети и не заметил, что ответ перестал соответствовать показанному DDL.
Читать материалИстория о фазах конкурентного создания индекса, старых транзакциях и INVALID-индексе после прерванной операции.
Читать материалКак транзакционная advisory lock и повторная проверка кэша позволяют одному процессу выполнить тяжёлый расчёт, пока остальные ждут результат.
Читать материалЗапрос к pg_roles для поиска учётных записей с истекающим паролем и планирования ротации до выходных.
Читать материалКак проверить рассинхронизацию sequence с данными таблицы, приближение к пределу типа и безопасно спланировать исправление.
Читать материалЗапрос для поиска последних дочерних партиций и практический чек-лист, который помогает не встретить границу диапазона во время праздников.
Читать материалПочему планировщик отказывается от параллелизма, какие операции должны быть parallel safe и как читать Gather в плане.
Читать материалКак диагностировать длинный динамический SQL через временное логирование для отдельной роли, если pg_stat_activity уже обрезал текст.
Читать материалПрактика быстрой загрузки PostgreSQL через COPY, осознанной работы с индексами и триггерами и обязательного ANALYZE.
Читать материалКак исследовать планы UPDATE, DELETE и INSERT и почему EXPLAIN ANALYZE для изменяющих запросов требует особой осторожности.
Читать материалКак перенести небольшой объём нужных данных в новую таблицу вместо массового DELETE и какие зависимости проверить перед переключением.
Читать материалКак HashAggregate, GroupAggregate, Sort и Unique реализуют группировку и удаление дублей в PostgreSQL.
Читать материалЧем GENERATED AS IDENTITY отличается от serial, как режим ALWAYS защищает от случайной ручной вставки и где остаётся риск рассинхронизации sequence.
Читать материалИстория о выборе ключа партиционирования, глобальной уникальности и проверке реальных запросов до миграции большой таблицы.
Читать материалSQL-запрос для обзора границ, размера, индексов, статистики обслуживания и табличных пространств партиций.
Читать материалКак Append показывает работу с партициями, почему нужен partition pruning и что происходит без фильтра по ключу партиционирования.
Читать материалПочему надёжная система должна не только обнаруживать сбои, но и идемпотентно восстанавливать незавершённую обработку.
Читать материалРазница между временем до первой строки и полным временем запроса, цена построения хеша и роль work_mem при Hash Join.
Читать материалКак лексикографический порядок ключей определяет доступный префикс индекса, диапазонный поиск и поддержку ORDER BY.
Читать материалИстория о предварительном SELECT, резервной копии и проверке выборки перед необратимым удалением данных.
Читать материалКак отличить навигацию по индексу от последующей фильтрации и переписать условия, чтобы составной индекс использовался эффективнее.
Читать материалИстория о компактном partial index для редкого активного статуса в таблице с сотнями миллионов завершённых операций.
Читать материалЧто означают Recheck Cond, exact и lossy heap blocks и как нехватка work_mem влияет на Bitmap Heap Scan.
Читать материалКак Bitmap Index Scan и Bitmap Heap Scan объединяют точность индекса с последовательным чтением страниц таблицы.
Читать материалЧем отличаются способы анти-соединения в PostgreSQL и почему NULL превращает NOT IN в опасную логическую ловушку.
Читать материалКак CREATE STATISTICS помогает планировщику учитывать зависимости между столбцами, частые сочетания значений и выражения.
Читать материалКак провести разбор инцидента без охоты на виноватых и превратить цепочку причин в конкретные улучшения системы.
Читать материалКак PostgreSQL выбирает алгоритм соединения и почему Nested Loop, Hash Join и Merge Join хороши для разных объёмов и условий.
Читать материалИстория о разделении исторических и оперативных данных между двумя materialized view и аккуратном объединении результатов.
Читать материалПочему Index Only Scan всё равно обращается к таблице, как visibility map влияет на Heap Fetches и при чём здесь VACUUM.
Читать материалКак стоимость, статистика и корреляция данных помогают планировщику выбирать между последовательным и индексным сканированием.
Читать материалКак несколько воркеров могут безопасно разбирать очередь PostgreSQL с FOR UPDATE SKIP LOCKED и когда лучше использовать lease-поля.
Читать материалСравнение предварительной агрегации в CTE и коррелированного LATERAL JOIN для массовых и точечных запросов PostgreSQL.
Читать материалРабочая история о том, как разбивать скучные задачи на короткие интервалы, замечать отвлечения и поддерживать видимый прогресс.
Читать материалРазбор запроса, в котором несколько соединений размножают строки перед GROUP BY, и способов агрегировать данные до JOIN.
Читать материалЧетыре распространённые причины Seq Scan: маленькая таблица, выражение над столбцом, низкая селективность и неточная статистика.
Читать материалИстория о релизной гонке, техническом долге и простых правилах, которые помогают команде не выбирать между сроками и надёжностью вслепую.
Читать материалКак устроено дерево плана PostgreSQL, что означают startup cost и total cost и в каком порядке читать узлы выполнения.
Читать материалВведение в EXPLAIN, EXPLAIN ANALYZE и BUFFERS: чем отличаются планы и как безопасно начинать анализ запросов PostgreSQL.
Читать материалИстория о блокировках обычного REFRESH MATERIALIZED VIEW и требованиях к безопасному обновлению с CONCURRENTLY.
Читать материалПрактический сценарий добавления и заполнения обязательного столбца в большой таблице PostgreSQL без одной гигантской транзакции.
Читать материалПочему UPDATE и обычный VACUUM не уменьшают файл таблицы PostgreSQL и как безопасно вернуть дисковое пространство системе.
Читать материалИстория о том, как забытые транзакции удерживают старые версии строк, мешают VACUUM и замедляют вставку данных.
Читать материал