Smallint против int на производительность

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

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

Ответ 1

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

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

Ответ 2

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

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