ВУЗ:
Составители:
Рубрика:
ROW_FORMAT Определяет, каким образом должны храниться строки.
В настоящее время эта опция работает только с
таблицами MyISAM, которые поддерживают форматы
строк DYNAMIC и FIXED
При использовании таблиц MyISAM MySQL вычисляет выражение
max_rows * avg_row_length, чтобы определить, насколько велика
будет результирующая таблица. Если не задана ни одна из вышеупомянутых
опций, то максимальный размер таблицы будет составлять 4Гб (или 2Гб,
если данная операционная система поддерживает только таблицы величиной
до 2Гб). Это делается для того, чтобы (если нет реальной необходимости в
больших файлах), ограничить размеры указателей, что позволит сделать
индексы меньше и быстрее. Если опция PACK_KEYS не используется, то по
умолчанию уплотняются только строки, но не числа. При использовании
PACK_KEYS=1 числа тоже будут уплотняться. При уплотнении двоичных
числовых ключей MySQL будет использовать сжатие префиксов. Это
означает, что выгода от этого будет значительной только в случае большого
количества одинаковых чисел. При сжатии префиксов для каждого ключа
требуется один дополнительный байт, в котором указано, сколько байтов
предыдущего ключа являются такими же, как и для следующего (следует
учитывать, что указатель на строку хранится в порядке "старший-байт-в-
начале", сразу после ключа, - чтобы улучшить компрессию). Это означает,
что при наличии нескольких одинаковых ключей в двух строках записи все
последующие ''аналогичные'' ключи будут занимать только по 2 байта
(включая указатель строки). Сравним: в обычном случае для хранения
последующих ключей требуется размер_хранения_ключа +
размер_указателя (обычно 4) байтов. С другой стороны, если все
ключи абсолютно разные, каждый ключ будет занимать на 1 байт больше,
если данный ключ не может иметь величину NULL (в этом случае
уплотненный ключ будет храниться в том же байте, который используется
для указания, что ключ равен NULL).
Если после команды CREATE указывается команда SELECT, то MySQL
создаст новые поля для всех элементов в данной команде SELECT.
Например:
mysql> CREATE TABLE test (a INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY (a), KEY(b))
TYPE=MyISAM SELECT b,c FROM test2;
Эта команда создаст таблицу MyISAM с тремя столбцами: a, b и c.
Отметим, что столбцы из команды SELECT присоединяются к таблице
справа, а не перекрывают ее. Рассмотрим следующий пример:
mysql> SELECT * FROM foo;
+---+
| n |
+---+
84
Страницы
- « первая
- ‹ предыдущая
- …
- 82
- 83
- 84
- 85
- 86
- …
- следующая ›
- последняя »
