1 or 4 bytes plus the actual binary string т.е. двоичный
В постгресе вы можете своё число 8 бит хранить как smallint(2 байта + оверхед) Но смотря, что за числа у вас. Если целые - используйте smallint и не парьтесь. Если вам именно биты нужны ( чтобы манипулировать и преобразовывать данные было проще) - используйте bytea. В коде приложения можете принимать, что bytea - это обычный char [-128 , 127]
Спасибо за подробное обьяснение. А подскажите пожалуйста в таблице в поле формата bytea я получается смогу записать последовательность 0 и 1? И при передаче этого числа в двоичном виде в приложение там не добавятся лишние нули или единицы (разряды)?
bytea - это тоже varchar. varchar принимает именно буквы / символы. А bytea - может принимать любое значение. Добавляться ничего не должно. А вот с побитовыми операциями в самом постгресе ничего не скажу. Я вообще паковал всё в smallint и уже на нём выполнял побитово. В прочем, может и Вам стоит так сделать
Спасибо еще раз, разобрался. Очень помогли
Кстати, есть ещё varbit, но у него оверхед не маленький, без необходимости выполнять битовые операции прямо в БД смысла его использовать нет.
Обсуждают сегодня