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

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

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

2 ответов


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

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


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

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