Мартьянова А.Е. Базы данных и знаний 212
нужный расход места на диске. Ненужный расход места на диске – это
место на диске, выделенное для элементов данных, хранящихся в колон-
ке, но не используемое. Например, предположим, у вас есть колонка, в
которой нужно хранить одно целое число в диапазоне от 1 до 100. Оче-
видно, что эти значения могут храниться в
типе integer, но каждое целое
число типа integer занимает 4 байта. Данные с типом tinyint могут хра-
нить значения от 0 до 255 и для них нужен только 1 байт места. В данном
случае tinyint будет наилучшим выбором, потому что это экономит место
на диске, необходимое для хранения данных из таблиц.
Затем вы должны определить, какой тип данных следует
использо-
вать – с фиксированной либо с переменной длиной. Если все значения
данных из колонки будут иметь приблизительно одинаковые размеры, то
более эффективным станет применение типа данных с фиксированной
длиной, так как обработка данных, имеющих типы переменной длины,
вызывает повышенную нагрузку. Вообще говоря, типы данных с пере-
менной длиной следует применять,
только если вы предполагаете значи-
тельные различия в длине данных, хранимых в данной колонке, и когда
данные из колонки обновляются редко. К данным с переменной длиной
относятся varchar, nvarchar, varbinary, text, ntext и image. Применение ти-
пов данных с переменной длиной может привести к значительной эко-
номии места для хранения данных. Например, если вы зададите тип
дан-
ных с фиксированной длиной, достаточной для хранения значений в ко-
лонке с наибольшей возможной длиной, то для всех значений, занимаю-
щих меньше места, истратится столько же места, как и для этого самого
объемного значения. Результатом этого станут огромный ненужный рас-
ход места на диске,
потому что лишь немногие строки будут расходовать
все максимально допустимое место для данных. В большинстве строк
будет использовано меньше места, а все неиспользуемое место станет
потерянным. А если вы зададите, что будет примениться тип данных с
переменной длиной, то короткие значения будут расходовать лишь то
место, которое им действительно нужно. Но опять-таки, применение ти-
пов данных с переменной длиной повышает нагрузку на процессор. По-
этому, если вам требуется тип данных с переменной длиной, то приме-
няйте тип данных с фиксированной длиной. Если из соображений расхо-
дования места для хранения данных нужно применять тип данных с
пе-
ременной длиной, то, конечно, применяйте его.
Итак, как же выбрать нужные для ваших таблиц типы данных и их
длины? Следуйте уже принятым ранее основным решениям и делайте
выбор, который наилучшим образом будет соответствовать потребно-
212