mysql - 通过将大型键值存储从 MySQL 迁移到 NoSQL 数据库,我能否期望性能得到显着提升?

标签 mysql nosql cassandra tokyo-cabinet

我正在开发一个包含大型科学数据集的数据库。典型的使用场景是每天大约有 5GB 的新数据写入数据库;每天也将删除 5GB。数据库总大小约为 50GB。我正在运行的服务器将无法将整个数据集存储在内存中。

我构建了数据库,主数据表只是一个由唯一 ID 和值组成的键/值存储。

查询通常针对大约 100 个连续值, 例如。 SELECT Value WHERE ID BETWEEN 7000000 AND 7000100;

我目前正在使用 MySQL/MyISAM,这些查询大约需要 0.1 - 0.3 秒,但最近我开始意识到 MySQL 可能不是基本上是大键/值的最佳解决方案商店。

在我开始做大量安装新软件和重写整个数据库的工作之前,我想大致了解一下在使用 NoSQL 数据库(例如 Tokyo Tyrant、Cassandra、MongoDB)时我是否可能会看到显着的性能提升) 而不是 MySQL 用于这些类型的检索。

谢谢

最佳答案

另请考虑OrientDB .它使用 RB+Tree 算法的索引。在我使用 100GB 数据库读取 100 个项目的测试中,在我的笔记本电脑上花费了 0.001-0.015 秒,但这取决于键/值在索引中的分布方式。

用它进​​行自己的测试应该不到 1 小时。

一个坏消息是 OrientDB 还不支持集群配置(计划在 2010 年 9 月)。

关于mysql - 通过将大型键值存储从 MySQL 迁移到 NoSQL 数据库,我能否期望性能得到显着提升?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3426587/

相关文章:

php - XAMPP 测试版 13 : Slow mysql connect

php - 获取MYSQL中的子级别

java - 如何通过 Spring Boot 在 MongoDB 中加载初始数据?

python - 如何利用 OpenBSD、Nginx、Python 和 NoSQL

java - 使用 datastax 对象映射器映射列表/集/映射类型的列

php - latin1 到 utf8 转换问题

mysql - 连接期间字段列表中的未知列

nosql - 压缩和刷新对 Cassandra 中写入延迟的影响

cassandra - Cassandra 中同一主键的重复行/列

.net - Cassandra - CLI 和 CQL 之间的区别