通过将大型密钥值存储从MySQL迁移到NoSQL DB,我可以期待显着的性能提升吗?

Pet*_*e W 7 mysql tokyo-cabinet cassandra nosql

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

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

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

我目前正在使用MySQL/MyISAM,这些查询的大小为0.1 - 0.3秒,但最近我发现MySQL可能不是基本上是大型键/值存储的最佳解决方案.

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

谢谢

Asa*_*saf 2

我在生产中使用 MongoDB 进行写入密集型操作,其中我的写入和读取操作速度都比您提到的要好,数据库的大小约为 90GB,单个实例 (amazon m1.xlarge) 的速度为 100QPS 我可以告诉你,在150M条目的数据库上,典型的key->value查询大约需要1-15ms,在重负载下查询时间达到30-50ms。无论如何,200 毫秒对于键/值存储来说太多了。

如果您只使用单个商品服务器,我会建议 mongoDB,因为它非常高效且易于学习,如果您正在寻找分布式解决方案,您可以尝试任何 Dynamo 克隆:Cassandra (Facebook) 或 Project Volemort (LinkedIn) 是最受欢迎的。请记住,寻求强一致性会大大减慢这些系统的速度。