我有一个网站,其数据库相当大,大小为 3Gb,有几张表,包含数千万条记录。
目前 MyISAM 的使用率为 100%,我感觉服务器由于锁定过多而运行速度比应有的慢,所以我想尝试使用 InnoDB,看看情况是否会有所改善。但是,我需要直接在生产中执行此操作,因为显然没有负载时这不会有任何区别。
不过,我对此有点担心,因为 InnoDB 实际上可能会更慢,所以问题是:
如果我将所有表都转换为 InnoDB,但结果比以前更糟,我可以返回到 MyISAM 而不会丢失任何东西吗?
您能想到我可能会遇到的任何问题吗?(例如,我知道 InnoDB 将所有数据存储在一个只会变得越来越大的文件中,这会是个问题吗?)
非常感谢
丹尼尔
答案1
我尝试在 mysql 中多次更改 DB 引擎,并且没有遇到任何问题。
然而,我更喜欢在测试机上进行。您只需导出数据库并将其导入到测试机上。然后,您可以更改引擎并检查是否存在错误/警告/数据丢失。为了生成负载,您可以创建自己的脚本来模拟真实负载,也可以使用现有工具来执行此操作。为此,您必须使用足够强大的机器来合理地判断性能。