在我的 PHP 应用程序中,我在一台服务器上的 MySQL MyISAM 分区表中有一个 470M 行的表,重 200GB。使用情况包括 70% 写入/30% 读取。我正在努力提高性能。当前的主要问题是由于表级锁引起的读/写争用。我正在尝试在两个选项之间做出决定:
- 将 MySQL 更改为 Innodb。优点:避免表级锁。缺点:更多的磁盘空间,需要更大的硬盘,可能没有这些硬盘那么快(目前使用 RAID10 6*300GB SAS 15k)。
- 将数据移动到 NoSQL 数据库。主要缺点:学习曲线。以前从未使用过 NoSQL。
问题是,在尝试仍然避免对数据进行分片的同时,考虑到我使用 RDMS MySQL 作为简单的键值存储这一事实,这两种方法之间的性能是否存在很大差异,或者 NoSQL 的主要优势是什么时候迁移到分布式系统?