MySQL Создать таблицу с процедурой анализа ()
Процедура Analyze() предлагает оптимальное поле для моих столбцов. Я хочу создать новую таблицу с оптимальными типами полей, начиная с таблицы, которая у меня уже есть. В это время я бегу
SELECT * FROM mytable PROCEDURE ANALYSE();
Затем я копирую отчет и вручную пишу оператор создания. Есть ли способ сделать это автоматически? Является ли более эффективным изменение таблицы с новыми типами полей или создание новой пустой таблицы с оптимальными типами полей и повторный импорт данных?
1 ответ
По правде говоря, вы не хотели бы слепо принимать типы данных, возвращаемые этим анализом, поскольку вы никогда не могли бы быть уверены, какие типы данных были "предложены". Эта процедура возвращает "Предлагаемые" оптимальные типы данных, которые "могут" помочь снизить требования к хранилищу данных. Возвращаемые значения также зависят от данных в таблице, которую вы выбираете, и могут изменяться каждый раз, когда вы запускаете этот запрос для новых данных.
Узнайте больше здесь на dev.mysql
Но если бы вы захотели что-то попробовать, я бы начал с создания собственной процедуры, которая могла бы передавать рекомендованные возвращаемые типы данных в динамически создаваемый оператор DDL, который вам нужно будет проверить на возможные неправильные типы данных, а затем выполнить полученный DDL. Это может занять немного времени с точки зрения вашего кода, но вы действительно должны прочитать больше о процедуре Analyze()