1

我对 AWS 非常陌生,我想将我的数据库迁移到 AWS RDS。但我面临几个问题。该数据库完全使用 MyISAM 而不是 InnoDB 构建。根据我在 AWS RDS 文档中阅读的内容,我了解到如果我将 InnoDB 用于数据库,我可以享受 AWS RDS 的功能,例如每日备份和只读副本。

我使用 MyISAM 的主要原因是利用全文搜索空间索引。直到今天,我了解到 AWS RDS 支持的 MySQL 版本仍然不支持全文搜索(据此它适用于 5.6.4),并且 InnoDB 仍然不支持空间索引。

所以这是我的问题

  1. 假设我将不需要 FTS 和 Spatial 的所有剩余表转换为使用 InnoDB 引擎,我可以如何优化使用 AWS RDS 提供的功能(只读副本、每日备份等)?
  2. 如果我将一个表分解为两个表,一个在 InnoDB 中,一个在 MyISAM 中,会更好吗?出现这种担忧是因为某些列经常被更新,因此这些列将被移动到 InnoDB 中以避免表锁定。另一方面,MyISAM 很少更新。
  3. 假设我为全文使用单独的引擎,例如 Sphinx 或 Solr,我如何将它与 RDS 一起使用?是否有一个单独的空间索引引擎可以与 RDS 一起使用?
  4. 有更好的主意吗?
4

1 回答 1

1

原因是 MyISAM 不被认为是 ACID 兼容的。这意味着如果您的数据库在事务中间发生了某些事情,它可能会处于不一致的状态。

就个人而言,我会使用为此目的而设计的全文搜索引擎。结果的质量通常比 mysql 提供的要好得多,您可以从 mysql 服务器上卸载一些工作。

于 2013-02-07T15:50:17.813 回答