Spec-Zone .ru
спецификации, руководства, описания, API
|
Файлы данных, которые Вы определяете в конфигурационном файле, формируются InnoDB
системная табличная
область. Файлы логически связываются, чтобы сформировать табличную область. В использовании нет никакого
чередования. В настоящий момент невозможно определить, где в пределах табличной области Ваши таблицы выделяются.
В недавно создаваемой табличной области, InnoDB
выделяет место, запускающееся с
первого файла данных.
Чтобы избежать проблем, которые идут с хранением всех таблиц и индексируют в системной табличной области, можно
включить innodb_file_per_table
параметр конфигурации, который хранит каждую недавно
составленную таблицу в отдельном файле табличной области (с расширением .ibd
). Для
таблиц, хранимых этот путь есть меньше фрагментации в пределах дискового файла, и когда таблица является
усеченной, пространство возвращается к операционной системе вместо того, чтобы все еще быть зарезервированным
InnoDB в пределах системной табличной области.
Каждая табличная область состоит из страниц базы
данных. У каждой табличной области в экземпляре MySQL есть тот же самый размер страницы.
По умолчанию у всех табличных областей есть размер страницы 16 Кбит; можно уменьшить размер страницы до 8 Кбит
или 4 Кбит, определяя innodb_page_size
опция, когда Вы создаете экземпляр MySQL.
Страницы группируются в степени размера 1 МБ
(64 последовательных страницы 16 Кбит, или страницы на 128 8 Кбит, или страницы на 256 4 Кбита). "Файлы" в табличной области призываются сегменты InnoDB
. (Эти сегменты отличаются от сегмента
отката, который фактически содержит много сегментов табличной области.)
Когда сегмент растет в табличной области, InnoDB
выделяет первые 32 страницы этому
по одному. После этого, InnoDB
начинает выделять целые степени сегменту. InnoDB
может составить в целом 4 степени за один раз к большому сегменту, чтобы
гарантировать хороший sequentiality данных.
Два сегмента выделяются для каждого, индексируют в InnoDB
. Каждый для узлов, не
являющихся листом B-дерева, другой для вершин. Хранение вершин, непрерывных на диске, включает лучшим
последовательным операциям ввода-вывода, потому что эти вершины содержат фактические табличные данные.
Некоторые страницы в табличной области содержат битовые массивы других страниц, и поэтому несколько степеней в
InnoDB
табличная область не может быть выделена сегментам в целом, но только как
отдельные страницы.
Когда Вы просите доступное свободное пространство в табличной области, выходя a SHOW TABLE STATUS
оператор, InnoDB
сообщают степени,
которые определенно свободны в табличной области. InnoDB
всегда резервы некоторые
степени для уборки и других внутренних целей; эти зарезервированные степени не включаются в свободное
пространство.
Когда Вы удаляете данные из таблицы, InnoDB
сокращается соответствующее B-дерево
индексирует. Становится ли освобожденное пространство доступным другим пользователям, зависит от того, удаляет
ли образец, освобождает отдельные страницы или степени к табличной области. Отбрасывание таблицы или удаление
всех строк от этого, как гарантируют, будут освобождать пространство другим пользователям, но помнить, что
удаленные строки физически удаляются только работой чистки, которая происходит
автоматически некоторое время после того, как они больше не необходимы для откатов транзакции или
непротиворечивых чтений. (См. Раздел 14.2.3.11,"InnoDB
Мультиуправление версиями".)
Чтобы видеть информацию о табличной области, используйте Монитор Табличной области. См. Раздел
14.2.4.4,"SHOW ENGINE INNODB STATUS
и InnoDB
Мониторы".
Максимальная длина строки, за исключением столбцов переменной длины (VARBINARY
, VARCHAR
,
BLOB
и TEXT
), немного меньше чем половина страницы базы данных. Таким образом,
максимальная длина строки составляет приблизительно 8000 байтов. LONGBLOB
и LONGTEXT
столбцы должны составить меньше чем 4 Гбайт, и длина строки итогов, включая BLOB
и TEXT
столбцы, должны быть меньше чем 4 Гбайт.
Если строка меньше чем половина страницы длиной, все это сохранено локально в пределах страницы. Если это
превышает половину страницы, столбцы переменной длины выбираются для внешнего хранения вне страницы до судорог
строки в пределах половины страницы. Для столбца, выбранного для хранения вне страницы, InnoDB
хранит первые 768 байтов локально в строке, и остальных внешне в страницы переполнения. У каждого такого столбца
есть свой собственный список страниц переполнения. 768-байтовый префикс сопровождается 20-байтовым значением,
которое хранит истинную длину столбца и точек в список переполнения, где остальная часть значения сохранена.