Одно новое значение статуса заказа переписало всю таблицу, а расплачивались за это годами
14 сентября 2026
10
0

Правка в спецификации на одно слово: добавить статус partially_refunded рядом с refunded, а не в конец, потому что список читают по порядку. В MySQL члены enum хранятся по позиции, и вставка в середину перенумеровывает соседей: вместо правки метаданных база копирует таблицу целиком, с блокировкой и запасом диска в размер самой таблицы.
Дороже обходится вывод, который делают наутро: выкинуть enum и хранить tinyint с картой кодов в приложении. В базе лежит 3, и что это partially_refunded, знает только код: в консоли, в аналитике и в дампе значение читать нечем.
Антон Бриллиантов разбирает, чем на это отвечает Postgres и где ограничения уже у постгресовых enum.
#postgresql #sql