Типы данных в PostgreSQL

235
15 января 2018, 06:46

До этого делал БД на СУБД MySQl, решил освоить PostgreSQL, и увидел что нету тех типов данных, которые есть в MySQL.

Например: TINYINT, CHAR, VARCHAR... еще нету команды UNSIGNED

Есть ли альтернатива этому в PostgreSQL? И как быть с UNSIGNED числами?

По умолчанию в PostgreSQL INT от -2 147 483 648 до +2 147 483 647, как и в MySQL. Но, в MySQL можно расширить в большую сторону 0 до 4 294 967 295, и число по прежнему будет занимать 4 байта.

2 147 483 647 записей это уже 8.5 гигабайт, и это только один столбец. 4 294 967 295 записей в MySQL будут весить 17 гигабайт, а в PostgreSQL будут весить в два раз больше? Пролейте свет на эту ситуацию.

Спасибо.

Answer 1

Модификатора unsigned и однобайтного числа tinyint в postgresql действительно нет.

Char и varchar вполне себе есть.

2 147 483 647 записей это уже 8.5 гигабайт, и это только один столбец. 4 294 967 295 записей в MySQL будут весить 17 гигабайт, а в PostgreSQL будут весить в два раз больше?

Если говорить о дисковом размере рабочей таблицы - зависит от структуры таблицы и, возможно неожиданно, от профиля использования таблицы, точного её определения и даже порядка полей в таблице. Аналогичную ремарку, к слову, заслуживает и mysql, но зависит в первую очередь от storage engine и деталей реализации именно этого engine.

Если говорить про сырые данные - если вам нужен диапазон по меньшей мере unsigned int в 32 бита - то минимальный подходящий тип данных в postgresql - это 64-битный bigint. Значит для хранения 4млрд значений будет 4млрд * 8 байт, то есть около 32гб сырых данных.

READ ALSO
C# отсортировать список по индексу другого списка

C# отсортировать список по индексу другого списка

Имеется List<string> с получаемыми данными из VKВ нем хранятся Id пользователей

317
Нужно при нажатии на боковые кнопки мыши производились функции копи паст, вместо &ldquo;назад&rdquo; и &ldquo;вперед&rdquo; соответственно. Глобально!

Нужно при нажатии на боковые кнопки мыши производились функции копи паст, вместо “назад” и “вперед” соответственно. Глобально!

Реализован глобальный хук и назначение функций на клавиши, нужно отменять действие "назад" и "вперед"

225
MS SQL SERVER связь многие ко многим

MS SQL SERVER связь многие ко многим

Вопрос следующийЕсть 2 таблицы: МАРШРУТ: Достопримечательность:

220