Spec-Zone .ru
спецификации, руководства, описания, API
|
После того, как Вы включаете данному innodb_file_format
, это изменение применяется только к недавно составленным
таблицам, а не существующим. Если Вы действительно составляете новую таблицу, табличная область, содержащая
таблицу, тегируется с "самым ранним" или "самым простым" форматом файла, который
требуется для функций таблицы. Например, если Вы включаете Барракуде формата файла, и составляете новую таблицу,
которая не сжимается и не использует ROW_FORMAT=DYNAMIC
, новая табличная область,
которая содержит таблицу, тегируется как использующий Антилопу формата файла.
Легко идентифицировать формат файла, используемый данной табличной областью или таблицей. Таблица использует
формат Барракуды если Row_format
сообщаемый SHOW CREATE
TABLE
или INFORMATION_SCHEMA.TABLES
один из 'Compressed'
или 'Dynamic'
. ( Row_format
отдельный столбец;
проигнорируйте содержание Create_options
столбец, который может содержать строку
ROW_FORMAT
.), Если таблица в табличной области не использует ни одну из тех
функций, файл использует формат, поддерживаемый предшествующими выпусками InnoDB, теперь названного Антилопой
формата файла. Затем, Row_format
один из 'Redundant'
или 'Compact'
.
У InnoDB есть два различных форматов файлов (Антилопа и Барракуда) и четыре различных формата строки (Избыточный, Компактный, Динамичный, и Сжатый). Формат файла Антилопы содержит Избыточные и Компактные форматы строки. Табличная область, которая использует формат файла Барракуды, использует или Динамический или Сжатый формат строки.
Информация о формате файла и строки пишется во флагах табличной области (32-разрядное число) в *.ibd
файл в 4 байтах, запускающихся в позиции 54 из файла, старший значащий байт
сначала (первый байт файла является нулем байта). На некоторых системах можно вывести на экран эти байты в
шестнадцатеричном с командой od -t x1 -j 54 -N 4
. Если все байты являются нулем, табличная
область использует формат файла Антилопы, который является форматом, используемым стандартным механизмом
хранения InnoDB до версии 5.1. У системной табличной области всегда будет нуль во флагах табличной области. tablename
.ibd
Первые 10 битов флагов табличной области могут быть описаны этот путь:
Бит 0: Нуль для Антилопы, и биты 1 - 5 также будут нулем. Один для Барракуды, и битов 1 - 5 может быть установлен.
Биты 1 - 4: число на 4 бита, представляющее сжатый размер страницы. 0 = не сжатый, 1 = 1 k, 2 = 2 k, 3 = 4 k, 4 = 8 k.
Бит 5: То же самое значение как Бит 0, обнулите для Антилопы, один для Барракуды. Если биты 0 и 5 устанавливаются, и биты 1 - 4 не, формат строки является Динамичным.
Биты 6 - 9: 4-разрядное число, указывающее на физический размер страницы табличной области. 0=16k (исходное значение по умолчанию), 3=4k, 4=8k, 5=16k. Они - единственные допустимые значения для Моего SQL 5.6 и позже.
Бит 10: расположение Табличной области. 0 = значение по умолчанию, 1 = используемый
DATA DIRECTORY
в CREATE TABLE
выбрать расположение табличной области.
Флаги табличной области подобны табличным флагам, найденным в таблице словаря InnoDB,"SYS_TABLES
". Они
отличаются по значению бита 0 и битов 6 - 10. Табличные флаги установят бит 0 в тот, если формат строки
определенной таблицы будет "Компактен".
Флаги табличной области не могут сделать этого, так как системная табличная область может содержать и
Избыточные и Компактные форматы строки. Так, для флагов табличной области бит 0 и бит 5 всегда являются тем
же самым значением.
Табличные флаги могут быть просмотрены, давая команду:
SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_TABLES;
Первые 7 битов табличных флагов могут быть описаны этот путь:
Бит 0: Нуль для Избыточного формата строки, и биты 1 - 5 будут нулем. Один для Компактного формата строки, и битов 1 - 5 может быть установлен.
Биты 1 - 4: число на 4 бита, представляющее сжатый размер страницы. 0 = не сжатый, 1 = 1 k, 2 = 2 k, 3 = 4 k, 4 = 8 k.
Бит 5: Нуль для формата файла Антилопы, и один для формата файла Барракуды. Если бит 5 устанавливается, и биты 1 - 4 не, формат строки является Динамичным. Кроме того, если бит 5 устанавливается, бит 0 должен также быть установлен.
Бит 6: расположение Табличной области. 0 = значение по умолчанию, 1 = DATA DIRECTORY
использовался в CREATE TABLE
выбрать расположение табличной области.
Если биты 7 - 31 не являются нулем, таблица повреждена или SYS_TABLES
запись
повреждена, и таблица не может использоваться.