Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Вопросы - ПНФ_2003.doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
155.14 Кб
Скачать

Перечисления

В ситуациях, где значение графы необходимо выбирать из предопределенного (заданного) списка значений, MySQL позволяет обратиться к типам данных ENUM и SET. При использовании обоих этих типов данных список предопределенных значений должен включаться в определение типа. Определение графы ENUM может содержать до 65 536 элементов, а определение графы SET — до 64 элементов.

Если графа помечена ENUM, то для нее может быть выбрано только одно из пре­допределенных значений, в то время как для графы SET допускается выбор нулево­го значения, а также одного или более из предопределенных значений. Графы ENUM наилучшим образом подходят для независимых значений. Так, например, определение ENUM ('red', 'green', 'yellow') заставляет вставить любое из этих трех зна­чений, тогда как определение SET (' mоп', ' tue', 'wed', ' thu', ' fri') допускает вставку ни одного, одного либо всех пяти значений. Кроме того, значения SET сохраняются в виде битов, что позволяет выполнять в отношении них поразрядные операции сравнения и сортировки.

При выборе типа данных нужно принимать во внимание следующие факторы:

диапазон и тип значений, которые будут содержаться в графе;

типы вычислений, выполнять которые предполагается с участием хранящихся в графе значений;

как данные будут форматироваться при выводе на экран;

как данные будут сортироваться и сравниваться с теми, что располагаются в других графах;

доступные подтипы для каждой графы и эффективность их хранения.

Выбор механизмов хранения для таблиц

Тип

Описание

ISAM

Устаревший механизм

MYISAM

Доработанная версия механизма ISAM с поддержкой граф с динамической длиной

INNODB

ACID-совместимый транзакционный механизм с поддержкой внешних ключей

MEMORY

Механизм на основе памяти с поддержкой хэш-индексов

CSV

Тестовый механизм для наборов записей CSV

ARCHIVE

Механизм с функцией сжатия для больших наборов данных

FEDERATED

Механизм для удаленных таблиц

NDB

Механизм для кластеризованных таблиц

MERGE

Механизм для таблиц, подвергнутых слиянию

Механизм хранения MylSam

Механизм хранения MylSAM — это расширение базового механизма ISAM, включающее дополнительные оптимизаторы и улучшения, он также является типом таблиц MySQL, используемым по умолчанию. Таблицы MylSAM оптимизированы для сжатия и скорости работы, при этом они могут переноситься из одной ОС и платформы на другую (например, одна и та же таблица MylSAM может использоваться как в Windows, так и в UNIX). Формат MylSAM поддерживает табличные файлы большого размера (до 256 Тбайт) и позволяет индексировать графы BLOB и TEXT. Таблицы и их индексы могут подвергаться сжатию с целью экономии пикового пространства, что придется кстати при сортировке больших граф BLOB или TEXT. Можно ограничить длину граф VARCHAR либо подстраивать этот параметр динамически в зависимости от того, какие данные в них помещаются, при этом вы также сможете осуществлять поиск записей с использованием любого префикса ключа либо всего ключа целиком.

Таблицы MylSAM оптимизированы под MySQL, поэтому разработчики предусмотрели для них ряд интеллектуальных опций.

  • Таблицы MylSAM могут иметь как фиксированную, так и переменную длину.

  • MySQL автоматически проверяет таблицы MylSAM на предмет повреждения при загрузке п даже может восстанавливать их в случае обнаружения ошибок.

  • Файлы данных и индексов таблиц могут располагаться в разных местах или даже в разных файловых системах.

  • Логика интеллектуальной дефрагментации обеспечивает высокую производительность даже для таблиц, в которых интенсивно выполняются операции вставки, обновления и удаления.

  • Большие таблицы MylSAM также могут сжиматься, или упаковываться, при помощи MySQL-утилиты myisampack, превращаясь в менее крупные таблицы только для чтения, занимающие меньше дискового пространства.