bigint, но bigint там совсем не нужен, хватить int
Есть ли какая - либо опасность(кроме блокировок) в том, чтобы менять тип вот так:
ALTER TABLE tbl_name ALTER field TYPE INT
Интересует следующий момент — будет же каст происходить bigint -> int — не опасно ли это для данных ?
А что 4 "лишних" байта так критичны? С учётом того, что заголовок записи в постuресе ~20 байт? Конечно, если там 100 таких полей, то экономия буде существенной. А так, я бы просто не стал париться по этому поводу. Разницу ни вскорости, ни в занимаемом месте на диске вы скорее всего не заметите.
там нюансы с орм, из за этого
на диске возможно оно в varint оптимизацию умеет для интов.. Даже скорей всего
"Оно" может и умеет, а вот Постгрес - нет. Если поле объявлено как bigint и оно не null, то оно всегда будет занимать 8 байт. И в памяти и на диске. Если только специально не указать для этого поля storage class, чтобы разрешить постгресу его компрессию. Но это актуально только для оень больших записей.
Обсуждают сегодня