我是Mysql的新手。 如果我将Mysql引擎从Myisam更改为innodb,会影响我的服务器上的数据吗?
谢谢。
我是Mysql的新手。 如果我将Mysql引擎从Myisam更改为innodb,会影响我的服务器上的数据吗?
谢谢。
将引擎从MyISAM
更改为INNODB
不应影响您的数据,但出于安全起见,在更改引擎之前可以轻松备份您的表。
备份:
CREATE TABLE backup_table LIKE your_table;
INSERT INTO backup_table SELECT * FROM your_table;
这可能会影响您的查询性能。您需要配置特定于Innodb的系统变量。例如:
innodb_buffer_pool_size = 16G
innodb_additional_mem_pool_size = 2G
innodb_log_file_size = 1G
innodb_log_buffer_size = 8M
将存储引擎更改为INNODB
:
ALTER TABLE table_name ENGINE=INNODB;
http://dev.mysql.com/doc/refman/5.5/en/innodb-restrictions.html
最后,如果你想在一个读取频繁的运行系统上从MyISAM转换到InnoDB(其中UPDATE和INSERT很少),你可以在不中断用户的情况下运行此操作。(RENAME会原子地运行。如果其中任何一个操作不起作用,它将撤消所有更改。)CREATE TABLE mytable_ind AS SELECT * FROM mytable;
ALTER TABLE mytable_ind ENGINE=InnoDB;
RENAME TABLE mytable TO mytable_myi, mytable_ind TO mytable;
DROP TABLE mytable_myi;