Smallint против int на производительность
Если я знаю, что значение столбца всегда должно находиться в диапазоне, разрешенном типом данных smallint, с точки зрения обслуживания целостности данных, мне кажется, что я должен хранить данные в столбце smallint, а не столбец int.
Однако мне интересно, есть ли какие-либо результаты производительности, которые могут быть оплачены за счет использования меньших байтов?
Ответы
Ответ 1
Меньшие типы = меньше хранения на диске, что приводит к более эффективным индексам. Однако эти приросты производительности будут минимальными, если не иметь дело с большим объемом данных; кроме того, чтобы избежать неявных преобразований (что может компенсировать любые выигрыши в производительности, которые вы видите), вам нужно быть уверенным, что в любое время вы ссылаетесь на этот столбец, в котором вы используете правильный тип (включая сравнение с параметрами и т.д.).
Возможно, мытье в любом случае.
Ответ 2
Как упоминает Стюарт, я ожидаю, что различия в производительности и хранении весьма незначительны.
Также стоит рассмотреть "домен", который вы хотите моделировать с данным типом. Если smallint более точно моделирует домен для данных, тогда его стоит сделать его явным, даже если это не даст вам заметного улучшения производительности.