muhammad_97
@muhammad_97
PHP-разработчик

Имеет ли смысл использовать SMALLINT вместо INT (PostgreSQL)?

Какую реальную выгоду даст такая замена, если я точно уверен, что размера SMALLINT мне достаточно?
  • Вопрос задан
  • 798 просмотров
Решения вопроса 2
Melkij
@Melkij
PostgreSQL DBA
int всегда 4 байта, smallint всегда 2 байта.
Меньше байт занимают данные - значит в тот же объём памяти на железке войдёт больше данных, и меньше данных надо будет прогонять через диски. Меньше работы дискам - это всегда плюс в производительности СУБД.
При том, данные меньше занимают места и в таблицах и в индексах.

Но это если у вас порядком целочисленных данных, а не какие-нибудь считанные миллионны строк. Что такое экономия десятка мегабайт данных на машинке с несколькими десятками гигабайт памяти?
Иначе использование подходящих типов это вежливость, проявление профессионализма и лишний способ случайно не отстрелить себе ногу (по ошибке записать что-то совсем странное уже не получится).
Ответ написан
Комментировать
petermzg
@petermzg
Самый лучший программист
Самый оптимальный размер это тот, что равен размеру регистра процессора, в этом случае не нужно заботится о выравнивании данных. С диска читаются и на диск пишутся данные вообще кластерами.
По этой причине оптимальны int32 и int64.
С современными устройствами хранения информации экономить 2 байта и потерять в скорости, это вам нужно?
А по сети данные можно передавать заархивировав их.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
dimonchik2013
@dimonchik2013
non progredi est regredi
скорость даст

естественно, имеет

типы полей для того же и придуманы, чтобы сообщить движку СУБД о максимальных расходах на память - от этого оптимизатор строит механизмы JOINов, индексов и т.д.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы