我是 AWS 的新手,我想将我的数据库迁移到 AWS RDS。但我面临几个问题。该数据库完全使用 MyISAM 而不是 InnoDB 构建。根据我在 AWS RDS 文档中阅读的内容,我了解到如果我将 InnoDB 用于数据库,我可以享受 AWS RDS 的功能,例如每日备份和只读副本。
我使用 MyISAM 的主要原因是利用 Full-Text Search和 Spatial Indexing .直到今天,我了解到 AWS RDS 支持的 MySQL 版本仍然不支持全文搜索(根据 this ,它适用于 5.6.4)并且 InnoDB 仍然不支持空间索引。
这是我的问题
- 假设我将所有剩余的不需要 FTS 和 Spatial 的表转换为使用 InnoDB 引擎,我可以如何优化使用 AWS RDS 提供的功能(只读副本、每日备份等)?
- 如果我将一个表分解成两个表,一个在 InnoDB 中,一个在 MyISAM 中,会不会更好?这个问题的出现是因为一些列经常被更新,所以这些列将被移动到 InnoDB 中以避免表锁定。另一方面,MyISAM 很少更新。
- 假设我为全文使用单独的引擎,例如Sphinx 或 Solr,如何与 RDS 一起使用?是否有单独的空间索引引擎可以与 RDS 一起使用?
- 有更好的主意吗?
最佳答案
这是因为 MyISAM 不符合 ACID 标准。这意味着如果在事务处理过程中您的数据库发生了某些事情,它可能会处于不一致状态。
就个人而言,我会使用为此目的设计的全文搜索引擎。结果的质量通常比 mysql 提供的质量好得多,您可以从 mysql 服务器卸载一些工作。
关于mysql - 在 AWS RDS 上混合使用 MyISAM 和 InnoDB 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14743569/