【问题标题】:Migrating tables to InnoDB将表迁移到 InnoDB
【发布时间】:2013-01-21 20:16:16
【问题描述】:

最初创建我的数据库时,它都是作为 MyISAM 创建的(没有特别的原因)——随着时间的推移,随着新表的添加,它们都是 InnoDB,因为这似乎是 PHPMyAdmin 的默认设置。

它从来没有引起我所知道的任何问题,但我真的需要开始考虑性能优化,尤其是当应用程序和数据库变得越来越忙时,所以想将它们全部更改为一种类型并选择了 InnoDB - 我很高兴以及如何进行更改等,但我的问题是这可能对前端应用程序产生什么影响(如果有的话)?该应用程序是一个自定义编码的 PHP 应用程序,基本上只是执行正常的 CRUD 操作,所以没有什么特别或不寻常的。

迁移后我应该注意什么,是否有可能停止工作或需要在应用程序中进行更改?我很欣赏 InnoDB 需要定制,尤其是为了获得最佳性能,我很乐意研究这一点,但我只想先将它们全部更改,运行几天,然后再进行下一步。

谢谢

【问题讨论】:

    标签: mysql innodb


    【解决方案1】:

    与任何此类架构更改一样,确定它如何影响您的应用程序的唯一方法是对其进行测试。也就是说,在测试机器上,用于您的生产网站。

    从 MyISAM 切换到 InnoDB 的注意事项很少。当然,您应该针对 InnoDB 进行调整。例如,请参阅我的演示文稿http://www.slideshare.net/billkarwin/mysql-55-guide-to-innodb-status 了解一些提示。

    还请记住,如果您为 MyISAM key_buffer_size 配置变量分配了大量 RAM,如果您将所有内容切换到 InnoDB,则不再需要这些 RAM。我已经审核了相当多的站点,这些站点仍然有 4GB+ 分配给这个不再使用的缓冲区。

    至于您需要在应用程序中进行的任何更改,不,不应该有任何需要。 InnoDB 支持与 MyISAM 相同的 SQL 数据类型和查询语义,除了少数特殊情况。

    例如,MyISAM 支持 auto-inc 列在第二位的复合主键。 InnoDB 要求 auto-inc 列是 PK 中的第一列。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-19
      • 2021-10-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多