如果MySQL表的引擎从MySAM更改为InnoDB,软件或站点可能会受到影响?

时间:2016-01-14 23:17:24

标签: mysql innodb

我知道答案可能是绝对的NO!但是要仔细检查,如果你已经将几个程序链接到当前正在使用MySAM引擎的不同MySQL表,然后我将引擎更改为InnoDB,是否会影响数据库之外的任何内容?,就像无法检索数据一样,插入数据,调用存储过程等

软件可以使用不同的语言,如PHP,JAVA,Visual Fox,.Net等。

2 个答案:

答案 0 :(得分:1)

没有。 你唯一应该检查的是 - 代码中有什么东西可以创建表并直接指示引擎(类似于ENGINE = MyISAM)。

ADD:和官方手册http://dev.mysql.com/doc/refman/5.7/en/converting-tables-to-innodb.html

答案 1 :(得分:1)

从MyISAM切换到InnoDB时需要考虑几十个差异。它们是enumerated here

正如你所说,答案是“不”。但是,可能会有一些东西从MySQL泄漏回客户端。 FULLTEXT不起作用。在某些情况下,您可以使用InnoDB获得0结果,但不能使用MyISAM获得0结果。有些事情可能需要更长的时间,特别是如果您没有调整上面链接中指示的索引。 LOCK TABLES应替换为BEGIN(等);这涉及客户端代码。 InnoDB的磁盘空间明显更大。

是的,key_buffer_size应降低到40M; innodb_buffer_pool_size应设置为可用RAM的70%左右。这是一个很大的性能问题。