MySQL默认数据库以及如何使现有的非InnoDB成为InnoDB

问题描述

|| 我正处于项目的开始阶段,到目前为止,我一直在使用默认的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之间的主要区别     

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...