smallint против int на производительность - PullRequest
11 голосов
/ 28 октября 2011

Если я знаю, что значение столбца всегда должно находиться в диапазоне, допустимом типом данных smallint, с точки зрения поддержания целостности данных, мне представляется целесообразным хранить данные в столбце smallint, а нестолбец int.

Однако мне интересно, есть ли какие-нибудь потери производительности, которые могут быть оплачены с использованием меньшего количества байтов?

Ответы [ 2 ]

11 голосов
/ 28 октября 2011

Меньшие типы = меньше места на диске, что приводит к более эффективным индексам. Тем не менее, это увеличение производительности будет минимальным, если не иметь дело с большим объемом данных; кроме того, чтобы избежать неявных преобразований (которые могут компенсировать любое увеличение производительности, которое вы видите), вам нужно быть уверенным, что каждый раз, когда вы ссылаетесь на столбец, который используете правильный тип (включая сравнения с параметрами и т. д.).

Вероятно, мытье в любом случае.

2 голосов
/ 28 октября 2011

Как упоминает Стюарт, я ожидаю, что различия в производительности и хранении весьма незначительны.

Также стоит рассмотреть «домен», который вы хотите смоделировать с данным типом.Если smallint более точно моделирует домен для данных, его стоит сделать явным, даже если он не дает заметного улучшения производительности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...