Изменить формат строки на динамический

#mysql

#mysql

Вопрос:

Какой оператор MySQL для изменения row_format на dynamic ?

Я не уверен, как я должен это делать (т. Е. с помощью information_schema или с помощью таблицы ALTER ).

Ответ №1:

попробуйте

 ALTER TABLE `test`  ROW_FORMAT=DYNAMIC;
  

Комментарии:

1. Я пытался, не уверен почему, но когда я проверяю свойства таблицы, она по-прежнему компактна, хотя инструкция mysql выполняется успешно. я использую wamp 2.1

2. @ airnet, я рад, что это работает у вас, ознакомьтесь с этим dev.mysql.com/doc/innodb-plugin/1.0/en /…

3. Я пытался, но у меня возникла ошибка: ОШИБКА 1071 (42000): указанный ключ был слишком длинным; максимальная длина ключа составляет 767 байт

Ответ №2:

Метод, который я использовал, основанный на текущих документах Oracle, заключается в том, что COMPACT имеющиеся у меня таблицы были установлены только на основе значения по умолчанию, которое теперь изменилось. Для меня это в системе MariaDB 10.2, но будет работать в современных системах MySQL.

В частности, убедитесь, что по умолчанию используется DYNAMIC (или формат, который вам нужен):

 SET GLOBAL innodb_default_row_format=DYNAMIC;
  

Затем ОПТИМИЗИРУЙТЕ таблицы, которые вам нужно изменить;

 OPTIMIZE TABLE database.tablename;
  

Это работает, потому что row_format обновляется до значения по умолчанию сервера при «операции, которая перестраивает таблицу в автоматическом режиме», если цитировать документацию.