Spec-Zone .ru
спецификации, руководства, описания, API
|
Определение ROW_FORMAT=COMPRESSED
или KEY_BLOCK_SIZE
в
CREATE
TABLE
или ALTER TABLE
операторы производят следующие предупреждения, если формат файла Барракуды не включается. Можно просмотреть их с
SHOW WARNINGS
оператор.
Уровень | Код | Сообщение |
---|---|---|
Предупреждение | 1478 | InnoDB: KEY_BLOCK_SIZE requires innodb_file_per_table. |
Предупреждение | 1478 | InnoDB: KEY_BLOCK_SIZE requires innodb_file_format=1 |
Предупреждение | 1478 | InnoDB: ignoring KEY_BLOCK_SIZE= |
Предупреждение | 1478 | InnoDB: ROW_FORMAT=COMPRESSED requiresinnodb_file_per_table. |
Предупреждение | 1478 | InnoDB: assuming ROW_FORMAT=COMPACT. |
Примечания:
По умолчанию эти сообщения являются только предупреждениями, не ошибками, и таблица составляется без сжатия, как будто опции не были определены.
Когда innodb_strict_mode
включается, MySQL генерирует ошибку, не
предупреждение, для этих случаев. Таблица не составляется, если текущая конфигурация не разрешает
использовать сжатые таблицы.
"Нестрогое" поведение позволяет Вам импортировать
a mysqldump
файл в базу данных, которая не поддерживает сжатые таблицы, даже если
исходная содержавшая база данных сжимала таблицы. В этом случае MySQL составляет таблицу в ROW_FORMAT=COMPACT
вместо того, чтобы предотвратить работу.
Чтобы импортировать файл дампа в новую базу данных, и воссоздать таблицы поскольку, они существуют в исходной
базе данных, гарантируют, что у сервера есть надлежащие настройки для параметров конфигурации innodb_file_format
и innodb_file_per_table
.
Атрибут KEY_BLOCK_SIZE
разрешается только когда ROW_FORMAT
определяется как COMPRESSED
или опускается.
Определение a KEY_BLOCK_SIZE
с любым другим ROW_FORMAT
генерирует предупреждение, что можно просмотреть с SHOW WARNINGS
. Однако, таблица
несжимается; указанное KEY_BLOCK_SIZE
игнорируется).
Уровень | Код | Сообщение |
---|---|---|
Предупреждение | 1478 | InnoDB: ignoring KEY_BLOCK_SIZE= |
Если Вы работаете с innodb_strict_mode
включенный, комбинация a KEY_BLOCK_SIZE
с любым ROW_FORMAT
кроме COMPRESSED
генерирует ошибку, не
предупреждение, и таблица не составляется.
Таблица 5.6, "Значение CREATE TABLE
и ALTER TABLE
опции" подводят итог
как различные варианты на CREATE TABLE
и ALTER
TABLE
обрабатываются.
Таблица 5.6. Значение CREATE TABLE
иALTER
TABLE
опции
Опция | Использование | Описание |
---|---|---|
ROW_FORMAT=REDUNDANT |
Формат хранения используется до MySQL 5.0.3 | Менее эффективный чем ROW_FORMAT=COMPACT ; для обратной
совместимости
|
ROW_FORMAT=COMPACT |
Формат хранения значения по умолчанию начиная с MySQL 5.0.3 | Хранит префикс 768 байтов длинных значений столбцов в странице кластерного индекса, с остающимися байтами, сохраненными в странице переполнения |
ROW_FORMAT=DYNAMIC |
Доступный только с innodb_file_format=Barracuda |
Хранилище оценивает в пределах страницы кластерного индекса, если они соответствуют; в противном случае хранилища только 20-байтовый указатель на страницу переполнения (никакой префикс) |
ROW_FORMAT=COMPRESSED |
Доступный только с innodb_file_format=Barracuda |
Сжимает таблицу и индексирует использование zlib, чтобы принять значение по умолчанию сжатый
размер страницы 8 K байтов; подразумевает ROW_FORMAT=DYNAMIC |
KEY_BLOCK_SIZE= |
Доступный только с innodb_file_format=Barracuda |
Определяет сжатый размер страницы 1, 2, 4, 8 или 16 килобайтов; подразумевает ROW_FORMAT=DYNAMIC иROW_FORMAT=COMPRESSED |
Таблица
5.7,"CREATE/ALTER TABLE
Предупреждения и Ошибки, когда InnoDB Строгий Режим
ПРОЧЬ", суммируют состояния ошибки, которые происходят с определенными комбинациями параметров
конфигурации и опций на CREATE TABLE
или ALTER
TABLE
операторы, и как опции появляются в выводе SHOW TABLE STATUS
.
Когда innodb_strict_mode
OFF
, MySQL создает или изменяет таблицу, но игнорирует определенные настройки как
показано ниже. Можно видеть предупреждающие сообщения в журнале ошибок MySQL. Когда innodb_strict_mode
ON
, эти указанные комбинации
опций генерируют ошибки, и таблица не составляется или изменяется. Чтобы видеть полное описание состояния
ошибки, выйдите SHOW ERRORS
оператор: пример:
mysql>CREATE TABLE x (id INT PRIMARY KEY, c INT)
->ENGINE=INNODB KEY_BLOCK_SIZE=33333;
ERROR 1005 (HY000): Can't create table 'test.x' (errno: 1478)mysql>SHOW ERRORS;
+-------+------+-------------------------------------------+ | Level | Code | Message | +-------+------+-------------------------------------------+ | Error | 1478 | InnoDB: invalid KEY_BLOCK_SIZE=33333. | | Error | 1005 | Can't create table 'test.x' (errno: 1478) | +-------+------+-------------------------------------------+ 2 rows in set (0.00 sec)
Таблица 5.7. CREATE/ALTER TABLE
Предупреждения и Ошибки, когда
Режим InnoDBStrict ВЫКЛЮЧЕН
Синтаксис | Предупреждение или Состояние ошибки | Заканчивание ROW_FORMAT , как показано в SHOW TABLE STATUS |
---|---|---|
ROW_FORMAT=REDUNDANT |
Ни один | REDUNDANT |
ROW_FORMAT=COMPACT |
Ни один | COMPACT |
ROW_FORMAT=COMPRESSED или ROW_FORMAT=DYNAMIC
или KEY_BLOCK_SIZE определяется
|
Проигнорированный, если оба innodb_file_format =Barracuda и innodb_file_per_table
включаются
|
COMPACT |
Недопустимый KEY_BLOCK_SIZE определяется (не 1, 2, 4, 8
или 16)
|
KEY_BLOCK_SIZE игнорируется |
требуемый, или COMPACT по умолчанию |
ROW_FORMAT=COMPRESSED и допустимый KEY_BLOCK_SIZE определяются
|
Ни один; KEY_BLOCK_SIZE определенный используется, не 8 K значения
по умолчанию
|
COMPRESSED |
KEY_BLOCK_SIZE определяется с REDUNDANT ,
COMPACT или DYNAMIC формат строки
|
KEY_BLOCK_SIZE игнорируется |
REDUNDANT , COMPACT или DYNAMIC |
ROW_FORMAT не один из REDUNDANT , COMPACT , DYNAMIC или COMPRESSED |
Проигнорированный если распознано синтаксическим анализатором MySQL. Иначе, ошибка isissued. | COMPACT или N/A |
Когда innodb_strict_mode
ON
, Недопустимые отклонения
MySQL ROW_FORMAT
или KEY_BLOCK_SIZE
параметры. Для
совместимости с более ранними версиями MySQL строгий режим не включается по умолчанию; вместо этого, MySQL
выпускает предупреждения (не ошибки) для проигнорированных недопустимых параметров.
Отметьте, что не возможно видеть выбранный KEY_BLOCK_SIZE
использование SHOW TABLE STATUS
. Оператор SHOW CREATE TABLE
дисплеи
KEY_BLOCK_SIZE
(даже если это было проигнорировано, составляя таблицу).
Вещественное число сжатый размер страницы таблицы не может быть выведено на экран MySQL.