База данных MySQL по умолчанию и как сделать существующую не-InnoDB InnoDB - PullRequest
3 голосов
/ 23 мая 2011

Я нахожусь на начальных этапах проекта и до сих пор использую базу данных MySQL по умолчанию.

Кстати, база данных по умолчанию имеет имя?

У меня вопрос, как я могу изменить существующие таблицы на utf-8 и InnoDB, не удаляя текущие и создавая новые таблицы. Есть ли другая таблица для создания таблицы utf-8 и InnoDB?

Спасибо, Alex

Ответы [ 2 ]

5 голосов
/ 23 мая 2011

MyISAM - это значение по умолчанию Storage Engine для MySQL (до 5.5.5, когда точка InnoDB стала значением по умолчанию). Не существует понятия базы данных по умолчанию .

Чтобы создать существующую таблицу, используйте InnoDB, используйте следующее:

ALTER TABLE tbl_name ENGINE = InnoDB;

Чтобы изменить набор символов существующей таблицы на utf8, используйте следующее:

ALTER TABLE tbl_name CONVERT TO CHARACTER SET utf8;
2 голосов
/ 23 мая 2011

Если вы хотите быть осторожнее с изменением таблицы на InnoDB, у меня есть хорошее предложение:

Создайте новую таблицу как InnoDB и загрузите ее

Для этого примера у вас есть таблица MyISAM с именем mytable в базе данных mydb. Вы можете выполнить следующее:

use mydb
CREATE TABLE mytable_innodb LIKE mytable;
ALTER TABLE mytable_innodb ENGINE=InnoDB;
INSERT INTO mytable_innodb SELECT * FROM mytable;
ALTER TABLE mytable RENAME mytable_myisam;
ALTER TABLE mytable_innodb RENAME mytable;

Вот и все. Новая таблица InnoDB, плюс у вас есть резервная копия исходной таблицы в MyISAM с ее исходным содержимым и макетом. Вы можете выполнять любые другие необходимые преобразования для новой таблицы InnoDB.

CAVEAT

Убедитесь, что вы оптимизируете InnoDB

Настройка производительности InnoDB

Howto: Очистить движок хранения MynoL InnoDB?

Как безопасно изменить размер файла журнала InnoDB

Основные различия между InnoDB и MyISAM

...