问题描述
||
我正处于项目的开始阶段,到目前为止,我一直在使用默认的MySQL数据库。
顺便说一句,默认数据库是否有名称?
我的问题是如何在不删除当前表和创建新表的情况下将现有表更改为utf-8和InnoDB。是否有一个修改表来制作表utf-8和InnoDB?
谢谢,
亚历克斯
解决方法
MyISAM
是MySQL的默认存储引擎(直到5.5.5,InnoDB
成为默认存储引擎)。没有默认数据库的概念。
要使现有表使用InnoDB
,请使用以下命令:
ALTER TABLE tbl_name ENGINE = InnoDB;
要将现有表的字符集更改为“ 4”,请使用以下命令:
ALTER TABLE tbl_name CONVERT TO CHARACTER SET utf8;
,如果您想安全地将表更改为InnoDB,我有一个很好的建议:
创建一个新表作为InnoDB并加载它
对于此示例,在mydb数据库中有一个名为mytable的MyISAM表。您可以执行以下操作:
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表上自由执行所需的任何其他转换。
警告
确保优化InnoDB
InnoDB性能调整
如何:清理一个MySQL InnoDB存储引擎?
如何安全地更改InnoDB日志文件大小
InnoDB和MyISAM之间的主要区别