我有一台运行CentOs 6.5,PHP-FPM,Mysql数据库和Nginx服务器的VPS。
我默认安装并使用了mysql,我现在可以看到它使用InnoDB作为默认引擎。因此,在意识到我的VPS耗尽512 RAM使用后,我开始优化Nginx和PHP-FPM。现在,我已经了解到InnoDB比MyISAM引擎使用更多的内存(至少在阅读时),因此我尝试更改mysql的默认引擎以使用MyISAM。
问题在于,由于我是新手,我担心在改变过程中我可能会破坏数据库,因为我之前几乎没有这样做过。
所以,我做的第一件事就是保存整个Mysql数据只是为了安全起来
cp –Rp /var/lib/mysql/*.* /backup
现在根据this answer更改引擎的最简单方法是
ALTER TABLE table_name ENGINE = MyISAM;
所以,现在我的问题是,它是否安全,如果只是直接更改我的数据库的引擎,这反过来将导致内存优化?还是有另一种方式。
答案 0 :(得分:2)
大多数InnoDB
比MyISAM
更好。您可以阅读更多相关信息here。一切都取决于你的桌子。如果您想从中读取(没有多少插入/更新/删除),那么您可以考虑MyISAM
。在其他情况下,如果有很多写操作,我会建议你留在InnoDB
。
回到你的问题:ALTER TABLE table_name ENGINE = MyISAM;
是安全的。它可能需要一段时间(在大表上)但是在此操作之后您的数据不应该被破坏。如果有任何问题,MySQL将通知您,并且不会执行转换。在最坏的情况下,您有备份,您可以随时恢复它。