Теперь, когда вы уже почувствовали, какие новые возможности открываются перед вами, можно уделить несколько минут тому, чтобы разобраться в процессе выбора данных, которые лучше всего подходят для решения ваших задач.
Как упоминалось в начале этой главы, разбиение данных по типам играет важную роль в сохранении целостности данных и повышении эффективности и скорости обработки данных. Следовательно, к процессу выбора типов данных во время разработки базы данных нельзя подходить поверхностно.
В этом разделе приводятся некоторые критерии, которые необходимо принимать во внимание при выборе типов данных для столбцов таблиц MySQL.
Допустимые значения
Диапазон и типы значений, которые допустимы для размещения в поле, является наиболее важным фактором, в соответствии с которым выбирается тип данных для определенного поля. Например, при определении типа данных для столбца, в котором будут храниться складские цены, вы вряд ли прибегнете к строковому или календарному типу. Это скорее всего должен быть один из числовых типов - FLOAT или DECIMAL, в зависимости от точности. Аналогично, для хранения дат дней рождения лучше всего подойдет тип DATE, а не какой-нибудь тип VARCHAR с необходимостью последующей обработки значений для дней, месяцев и годов.
Эффективность хранения
Не менее важно, особенно тогда, когда речь идет о цифровых типах, учитывать диапазон возможных величин для полей. Например, при создании столбца для хранения возраста всех пользователей, работающих с системой, очевидно, что значения для этого поля всегда будут лежать в диапазоне чисел 0 - 255. В таком случае неэффективно для этого поля пользоваться типом INT или BIGINT, т.к. для такого диапазона чисел вполне достаточно типа UNSIGNED TINYINT, который занимает меньше места - всего 1 байт, вместо 4 или 8 байтов.
Аналогичная логика применима и для строковых значений. Зная, например, что определенное поле будет содержать, строку, содержащую два символа (скажем, коды штатов США), имеет смысл задействовать тип CHAR с индексом 2, а не TEXT или BLOB, для которых потребуется значительно больше места, чем требуется для хранения необходимой информации, не добавляя при этом никаких дополнительных возможностей. Аналогично, если априори известно, что допустимые значения принадлежат к определенному набору значений, это будет подсказкой для выбора типа ENUM или SET.
Требования к форматированию и отображению
Другим важнейшим фактором, влияющим на выбор типа поля, являются требования к форматированию и отображению данных, предъявляемые к данным этого поля на прикладном уровне. Например, если строка должна всегда иметь определенную длину, уместно будет воспользоваться типом CHAR, который автоматически добавляет пробелы везде, где это необходимо. (Для цифровых данных, эквивалентом этого является модификатор ZEROFILL, который для заполнения использует нули.) Аналогично, если вам необходимы числа, которые будут всегда отображаться с четырьмя цифрами после запятой, можно воспользоваться типом DECIMAL, который позволяет задавать точность сохраняемых им значений.
Форматирование также играет существенную роль при работе с календарными датами и временем. В зависимости от того, какие задачи будет выполнять разрабатываемая вами система - отображать данные в том виде, в котором они были сохранены, или обрабатываться дальше, - можно выбрать обычный тип DATE, который использует запись даты в понятном для человека формате "YYYY-MM-DD" или в формате "YYYYMMDDHHMMSS", который удобен для программной обработки.
ТОП-10 популярных
Для работы с вещественными числами в MySQL предусмотрено три типа данных - это типы FLOAT, DOUBLE, DECIMAL. Числовой тип FLOAT...
БОЛЬШЕ БОЛЬШИХ LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Больше больших LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
НОУТБУК с блестящим экраном
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...
Иди и пиши. TravelMate C100
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...
Магнито-оптический дисковод DynaMO
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...
Компьютер для гурманов.«Эксимер ДМ»
Российская компания «Эксимер ДМ», известная как производитель настольных компьютеров, рабочих станций, серверов и ноутбуков, выступила техническим спонсором проведения торжеств, посвященных...
Российская компания «Эксимер ДМ», известная как производитель настольных компьютеров, рабочих станций, серверов и ноутбуков, выступила техническим спонсором проведения торжеств, посвященных...
Для длинных строк, т.е. строк длиннее 255 символов, в MySQL предусмотрены типы BLOB (Binary Large Object, большой двоичный объект) и...
В дополнение к календарным типам, предназначенным для хранения даты и времени отдельно, MySQL также поддерживает гибридные типы данных DATETIME и...
Вообще, к изменению настроек сервера прибегают очень редко. В MySQL программа заранее настроена так, чтобы соответствовать самым распространенным и основным...
Все о MySQL. Выбор типа данных
28-12-2009
<< Предыдущая статья | Следующая статья >> |
Все о MySQL. Сложные типы | Все о MySQL. Выбор типа данных. Продолжение. |