Подтвердить что ты не робот

Оптимизировать таблицу innodb

Когда я запускаю таблицу оптимизации таблицы innodb, я получаю это сообщение. означает ли это, что таблица уже оптимизирована, но по-другому?

"table | optimize | note | Таблица не поддерживает оптимизацию, вместо этого заново создавайте + анализировать"

4b9b3361

Ответ 1

В документации :

Для таблиц InnoDB таблица OPTIMIZE TABLE отображается в ALTER TABLE, которая перестраивает таблицу для обновления статистики индекса и свободного неиспользуемого пространства в кластерном индексе. Начиная с MySQL 5.1.27, это отображается в выводе OPTIMIZE TABLE, когда вы запускаете его в таблице InnoDB, как показано ниже:

mysql> OPTIMIZE TABLE foo;
+----------+----------+----------+-----------------------------------------------------------
| Table    | Op       | Msg_type | Msg_text                                                    
+----------+----------+----------+-----------------------------------------------------------    
| test.foo | optimize | note     | Table does not support optimize, doing recreate + analyze ...
| test.foo | optimize | status   | OK                                                            
+----------+----------+----------+-----------------------------------------------------------

Вы можете заставить OPTIMIZE TABLE работать с другими системами хранения, запустив mysqld с параметром -skip-new или -safe-mode. В этом случае OPTIMIZE TABLE просто отображается в ALTER TABLE.

Ответ 2

Синтаксис optimize таблицы

OPTIMIZE [NO_WRITE_TO_BINLOG | LOCAL] TABLE
 tbl_name [, tbl_name] ...

Используйте OPTIMIZE TABLE в этих случаях, в зависимости от типа таблицы:

  • После выполнения существенных операций вставки, обновления или удаления в таблице InnoDB, которая имеет свой собственный .ibd файл, поскольку она была создана с включенным параметром innodb_file_per_table. Таблица и индексы реорганизуются, а дисковое пространство может быть восстановлено для использования операционной системой.
  • После удаления большой части таблицы MyISAM или ARCHIVE или внесения большого количества изменений в таблицу MyISAM или ARCHIVE с строками переменной длины (таблицы с столбцами VARCHAR, VARBINARY, BLOB или TEXT). Удаленные строки сохраняются в связанном списке, а последующие операции INSERT повторно используют старые позиции строк. Вы можете использовать OPTIMIZE TABLE для восстановления неиспользуемого пространства и дефрагментации файла данных. После обширных изменений в таблице этот оператор также может повысить производительность операторов, которые используют таблицу, а иногда и значительно.