Spec-Zone .ru
спецификации, руководства, описания, API

13.1.18. CREATE TABLESPACE Синтаксис

CREATE TABLESPACE tablespace_name    ADD DATAFILE 'file_name'    USE LOGFILE GROUP logfile_group    [EXTENT_SIZE [=] extent_size]    [INITIAL_SIZE [=] initial_size]    [AUTOEXTEND_SIZE [=] autoextend_size]    [MAX_SIZE [=] max_size]    [NODEGROUP [=] nodegroup_id]    [WAIT]    [COMMENT [=] comment_text]    ENGINE [=] engine_name

Этот оператор используется, чтобы создать табличную область, которая может содержать один или более файлов данных, обеспечивая пространство памяти для таблиц. Один файл данных создается и добавляется к табличной области, используя этот оператор. Дополнительные файлы данных могут быть добавлены к табличной области при использовании ALTER TABLESPACE оператор (см. Раздел 13.1.8,"ALTER TABLESPACE Синтаксис"). Для правил, касающихся именования табличных областей, см. Раздел 9.2, "Имена объектов Схемы".

Отметить

Вся доля MySQL Cluster Disk Data objects то же самое пространство имен. Это означает, что каждый Дисковый Объект данных нужно уникально назвать (и не просто каждый Дисковый Объект данных данного типа). Например, у Вас не может быть табличной области и группы файла журнала с тем же самым именем, или табличной области и файла данных с тем же самым именем.

Группа файла журнала один или больше UNDO файлы журнала должны быть присвоены табличной области быть созданными с USE LOGFILE GROUP пункт. logfile_group должна быть существующая группа файла журнала, создаваемая с CREATE LOGFILE GROUP (см. Раздел 13.1.14,"CREATE LOGFILE GROUP Синтаксис"). Многократные табличные области могут использовать ту же самую группу файла журнала для UNDO журналирование.

EXTENT_SIZE устанавливает размер, в байтах, степеней, используемых любыми файлами, принадлежащими табличной области. Значение по умолчанию 1M. Минимальный размер составляет 32 K, и теоретический максимум составляет 2 г, хотя практический максимальный размер зависит в ряде факторов. В большинстве случаев изменение размера степени не имеет никакого измеримого эффекта на производительность, и значение по умолчанию рекомендуется для всех кроме самых необычных ситуаций.

Степень является модулем выделения дискового пространства. Одна степень заполнена таким большим количеством данных как, что степень может содержать прежде, чем другая степень используется. В теории до 65 535 (64 K) степеней могут используемый на файл данных; однако, рекомендуемый максимум 32 768 (32 K). Рекомендуемый максимальный размер для единственного файла данных составляет 32 г — то есть, 32 K степеней × 1 Мбайт за степень. Кроме того, как только степень выделяется данному разделу, она не может использоваться, чтобы хранить данные от различного раздела; степень не может хранить данные больше чем от одного раздела. Это означает, например что табличная область, имеющая единственный файл данных чей INITIAL_SIZE 256 Мбайт и чей EXTENT_SIZE 128M, имеет только две степени, и так может использоваться, чтобы хранить данные от самое большее двух различных дисковых разделов таблицы данных.

Можно видеть, сколько степеней остается свободными в файле определенных данных, запрашивая INFORMATION_SCHEMA.FILES таблица, и так получает оценку для того, сколько пространства остается свободным в файле. Для дальнейшего обсуждения и примеров, см. Раздел 20.8," INFORMATION_SCHEMA FILES Таблица".

INITIAL_SIZE параметр устанавливает полный размер файла данных в байтах. Как только файл был создан, его размер не может быть изменен; однако, можно добавить больше файлов данных к использованию табличной области ALTER TABLESPACE ... ADD DATAFILE. См. Раздел 13.1.8,"ALTER TABLESPACE Синтаксис".

INITIAL_SIZE является дополнительным; его значение по умолчанию 128M.

На 32-разрядных системах, максимальном поддерживаемом значении для INITIAL_SIZE 4G. (Ошибка #29186)

Устанавливая EXTENT_SIZE или INITIAL_SIZE (или или оба), можно дополнительно следовать за числом с однобуквенным сокращением для порядка величины, подобного используемым в my.cnf. Обычно, это - одна из букв M (для мегабайтов) или G (для гигабайтов).

INITIAL_SIZE, EXTENT_SIZE, и UNDO_BUFFER_SIZE подвергаются округлению следующим образом:

Округление, только описанное, делается явно, и предупреждение выпускается MySQL Server, когда любое такое округление выполняется. Округленные значения также используются ядром NDB для того, чтобы вычислить INFORMATION_SCHEMA.FILES значения столбцов и другие цели. Однако, чтобы избежать неожиданного результата, мы предлагаем, чтобы Вы всегда использовали целую сеть магазинов 32 K в определении этих опций.

AUTOEXTEND_SIZE, MAX_SIZE, NODEGROUP, WAIT, и COMMENT анализируются, но игнорируются, и так в настоящий момент не имеют никакого эффекта. Эти опции предназначаются для будущего расширения.

ENGINE параметр определяет механизм хранения, который использует эту табличную область, с engine_name будучи именем механизма хранения. В настоящий момент, engine_name должно быть одно из значений NDB или NDBCLUSTER.

Когда CREATE TABLESPACE используется с ENGINE = NDB, табличная область и связанный файл данных создаются на каждом узле данных Кластера. Можно проверить, что файлы данных создавались и получают информацию о них, запрашивая INFORMATION_SCHEMA.FILES таблица. Например:

mysql> SELECT LOGFILE_GROUP_NAME, FILE_NAME,
        EXTRA    -> FROM INFORMATION_SCHEMA.FILES    -> WHERE TABLESPACE_NAME = 'newts' AND FILE_TYPE = 'DATAFILE';+--------------------+-------------+----------------+| LOGFILE_GROUP_NAME | FILE_NAME   | EXTRA          |+--------------------+-------------+----------------+| lg_3               | newdata.dat | CLUSTER_NODE=3 || lg_3               | newdata.dat | CLUSTER_NODE=4 |+--------------------+-------------+----------------+2 rows in set (0.01 sec)

(См. Раздел 20.8," INFORMATION_SCHEMA FILES Таблица".)

CREATE TABLESPACE полезно только с Дисковым Хранением данных для MySQL Cluster. См. Раздел 17.5.12, "MySQL Cluster Disk Data Tables".