从 MyISAM 更改为 InnoDB 是否需要更改 MySQL 中的 SQL 查询?

Dav*_*eld 4 mysql innodb myisam

我打算将MyISAMMySQL 数据库中的一些大表更改为InnoDB.

这是因为我遇到了性能问题,其中大型和复杂的更新(一次更新几百万行)阻止用户并发访问该表。

我知道如果我将表转换为 InnoDB,那么写入/更新将导致行锁定而不是表锁定。

如果我这样做,将不得不检查我所有的SQL selects/insert statements和我的存储过程,并由于引擎更改而进行任何更改,还是它们都“正常工作”?

Abd*_*naf 5

我认为您不需要更改任何SQL statements and SP's,它们应该像以前一样工作。

你需要记住一些要点

  1. 如果你有 MySQL 5.5 或更低版本,并且你有FULL TEXT indexTable 那么这是一个问题,InnoDB不支持 FULL TEXT 索引直到 MySQL 5.5,它们在MySQL 5.6和更高版本中受支持。

  2. 如果您Spatial Indexes在桌子上,InnoDB引擎尚不支持它们

您还应该记住许多其他要点,请务必查看一些重要链接,这些链接建议在将表从 MyISAM 迁移到 InnoDB 时应考虑的各种事项

  1. InnoDB 和 MyISAM 的主要区别是什么?

  2. 您如何为繁重的 InnoDB 工作负载调整 MySQL。?

  3. 我应该在计划迁移期间迁移到 InnoDB。?

  4. 从 MyISAM 到 InnoDB 的在线转换?

  5. 将表从 MyISAM 转换为 InnoDB。