mysql - 在 AWS RDS 上混合使用 MyISAM 和 InnoDB 的问题

标签 mysql amazon-web-services innodb myisam amazon-rds

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

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

这是我的问题

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

最佳答案

这是因为 MyISAM 不符合 ACID 标准。这意味着如果在事务处理过程中您的数据库发生了某些事情,它可能会处于不一致状态。

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

关于mysql - 在 AWS RDS 上混合使用 MyISAM 和 InnoDB 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14743569/

相关文章:

mysql - CRUD 应用程序中的 Laravel 关系

php - IIS 中 PHP 和 ASP 的提示

amazon-web-services - AWS Batch 作业 - 设备上没有剩余空间,但已启用 EBS 自动扩展

MySQL 引擎=InnoDB 错误 1005 errno 150

mysql - MySQL 中的 InnoDB 和 MyISAM 是什么?

mysql - InnoDB 代表什么?

mysql - Debian 上的 MariaDB : Syntax error: How to switch unix socket authentication back to password-based?

mysql - 在 mysql 表中搜索列中的术语,如果找到则删除术语

amazon-web-services - scaleUpTime 和scaleDownTime cron 表达式

node.js - nodejs - 永远扫描目录以查找新文件