Видеозаписи выступлений

Миграция int –> bigint

В PostgreSQL существуют 3 основных типа хранения целочисленных данных: smallint, integer и bigint. И когда система начинает расти, могут начаться сбои из-за переполнения типов данных. Если в начале проекта хватало int4, то впоследствии он может полностью исчерпаться, и понадобится миграция на bigint.

Александр Никитин, ведущий администратор баз данных PGMechanix, на PG BootCamp 2024 Minsk поделился опытом: как обнаружить, что скоро всё сломается и предотвратить ситуацию переполнения типа данных.

«Чтобы определить, что в таблицах скоро наступит переполнение, можно вести список таблиц с полями типа int, по крону опрашивать все поля этих таблиц на значение максимума, выстраивать аналитику – отслеживать динамику роста и строить прогнозы. Как вариант – есть такая вещь, как статистика – таблица «BiG». Можно ежедневно отслеживать максимальное значение и мониторить динамику заполнения типа int с помощью специального запроса», – объяснил спикер.


Борьба с переполнением путем миграции на bigint предполагает длинный алгоритм действий. В PGMechanix разработали утилиту, которая поможет при подобного рода операциях.
Минск 2024