При работе с SQL Server важно выбрать правильный тип данных для ваших столбцов. В то время как большинство людей по умолчанию используют тип данных “int” для целых чисел, на самом деле в SQL Server доступно четыре разных целочисленных типа данных.
Давайте ближе рассмотрим эти целочисленные типы данных:
- bigint: Этот тип данных может хранить значения в диапазоне от -2^63 до 2^63-1 и требует 8 байтов памяти.
- int: Тип данных “int” может хранить значения в диапазоне от -2^31 до 2^31-1 и требует 4 байта памяти.
- smallint: Этот тип данных может хранить значения в диапазоне от -2^15 до 2^15-1 и требует 2 байта памяти.
- tinyint: Тип данных “tinyint” может хранить значения в диапазоне от 0 до 255 и требует 1 байт памяти.
Как видите, каждый из этих типов данных имеет различный диапазон значений, которые он может хранить, и требует различное количество памяти. В то время как тип данных “int” может подходить для большинства сценариев, он не всегда является правильным выбором.
Например, если у вас есть таблица с столбцом идентификатора и вы ожидаете добавлять миллионы строк в день, использование типа данных “int” может быть недостаточным. В реальном примере социальной сети использование типа данных “int” для идентификатора привело к достижению предела в 2 миллиарда строк для положительных значений, что вызвало сбой. В этом случае более подходящим выбором был бы тип данных “bigint”.
Стоит отметить, что тип данных “bigint” может обрабатывать один миллион строк в секунду в течение почти трехсот тысяч лет, прежде чем достигнет своего предела. Однако, это увеличенная емкость происходит за счет дополнительного пространства для хранения. Тип данных “bigint” требует на 4 байта больше, чем тип данных “int”, что примерно равно 4 МБ на миллион строк.
С другой стороны, если у вас есть таблицы поиска с относительно небольшим количеством строк, такие как таблицы сотрудников или районов продаж, вы можете сэкономить пространство для хранения, используя более маленькие целочисленные типы данных. Например, использование типа данных “smallint” вместо “int” для таблицы с 64 тысячами строк может сэкономить примерно 125 КБ пространства для хранения.
Тщательно выбирая подходящий целочисленный тип данных для ваших столбцов, вы можете оптимизировать пространство для хранения и предотвратить потенциальные проблемы с ограничениями данных. Даже небольшие сбережения в пространстве для хранения могут значительно накапливаться при работе с большими таблицами или несколькими таблицами поиска.
Помните, что важно учитывать диапазон значений, которые вы ожидаете хранить, и потенциальный рост ваших данных при выборе правильного целочисленного типа данных в SQL Server.