Лабораторная работа №1 Ознакомление с интерфейсом субд mysql



Pdf көрінісі
бет46/51
Дата11.10.2023
өлшемі1.29 Mb.
#480346
1   ...   43   44   45   46   47   48   49   50   51
Metod BDiAKS 11.03.04 2017

Тип таблицы Описание 
BDB 
Таблицы с поддержкой транзакций и блокировкой страниц 
HEAP 
Данные для этой таблицы хранятся только в памяти
ISAM 
Оригинальный обработчик таблиц
InnoDB 
Таблицы с поддержкой транзакций и блокировкой строк. See section 
MERGE 
Набор таблиц MyISAM, используемый как одна таблица. See section 
MRG_MyISAM Псевдоним для таблиц MERGE 
MyISAM 
Новый обработчик, обеспечивающий переносимость таблиц в бинарном 
виде, который заменяет ISAM. See section 
Если задается тип таблицы, который не поддерживается данной версией, то MySQL 
выберет из возможных типов ближайший к указанному. Например, если задается 
TYPE=BDB
и данный дистрибутив MySQL не поддерживает таблиц 
BDB
, то вместо этого 
будет создана таблица 
MyISAM
. Другие табличные опции используются для оптимизации 
характеристик таблицы. Эти опции в большинстве случаев не требуют специальной уста-
новки. Данные опции работают с таблицами всех типов, если не указано иное: 
Опция 
Описание 
AUTO_INCREMENT Следующая величина
AUTO_INCREMENT
, которую следует уста-
новить для данной таблицы (
MyISAM
)
AVG_ROW_LENGTH Приближенное значение средней длины строки для данной таблицы. 
Имеет смысл устанавливать только для обширных таблиц с записями 
переменной длины 
CHECKSUM 
Следует установить в
1
, чтобы в MySQL поддерживалась проверка 
контрольной суммы для всех строк (это делает таблицы немного бо-
лее медленными при обновлении, но позволяет легче находить повре-
жденные таблицы) (
MyISAM

COMMENT 
Комментарий для данной таблицы длиной 60 символов
MAX_ROWS 
Максимальное число строк, которые планируется хранить в данной 
таблице
MIN_ROWS 
Минимальное число строк, которые планируется хранить в данной 
таблице
PACK_KEYS 
Следует установить в
1
для получения меньшего индекса. Обычно 
это замедляет обновление и ускоряет чтение (
MyISAM
,
ISAM
). 
Установка в
0
отключит уплотнение ключей. При установке в 
DEFAULT
(MySQL 4.0) обработчик таблиц будет уплотнять только 
длинные столбцы 
CHAR/VARCHAR
PASSWORD 
Шифрует файл 
`.frm'
с помощью пароля. Эта опция не функцио-
нирует в стандартной версии MySQL
DELAY_KEY_WRITE Установка в
1
задерживает операции обновления таблицы ключей, 
пока не закроется указанная таблица (
MyISAM
)
ROW_FORMAT 
Определяет, каким образом должны храниться строки. В настоящее 
время эта опция работает только с таблицами 
MyISAM
, которые под-
держивают форматы строк 
DYNAMIC
и 
FIXED
При использовании таблиц 
MyISAM
MySQL вычисляет выражение 
max_rows * 
avg_row_length
, чтобы определить, насколько велика будет результирующая табли-
67


ца. Если не задана ни одна из вышеупомянутых опций, то максимальный размер таблицы 
будет составлять 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 |
+---+
| 1 |
+---+
mysql> CREATE TABLE bar (m INT) SELECT n FROM foo;
Query OK, 1 row affected (0.02 sec)
Records: 1 Duplicates: 0 Warnings: 0
mysql> SELECT * FROM bar;
+------+---+
| m | n |
+------+---+
| NULL | 1 |
+------+---+
1 row in set (0.00 sec)
Каждая строка в таблице 
foo
вносится в таблицу 
bar
со своим значением из 
foo

при этом в новые столбцы в таблице
bar
записываются величины, заданные по умолча-
нию. Команда
CREATE TABLE ... SELECT
не создает автоматически каких-либо 
индексов. Это сделано преднамеренно, чтобы команда была настолько гибкой, насколько 
возможно. Чтобы иметь индексы в созданной таблице, необходимо указать их перед данной 
командой 
SELECT

mysql> CREATE TABLE bar (UNIQUE (n)) SELECT n FROM foo;
68


Если возникает ошибка при копировании данных в таблицу, то они будут автомати-
чески удалены. Чтобы обеспечить возможность использовать для восстановления таблиц 
журнал обновлений/двоичный журнал, в MySQL во время выполнения команды 
CREATE 
TABLE ... SELECT
не разрешены параллельные вставки. 


Достарыңызбен бөлісу:
1   ...   43   44   45   46   47   48   49   50   51




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет