#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
обновляется до значения по умолчанию сервера при «операции, которая перестраивает таблицу в автоматическом режиме», если цитировать документацию.