我发现了一些与此相同的问题,但它们没有包含有关所存储数据的性质、查询方式等方面的太多细节……所以我认为这值得发布。
我的数据非常简单,三个字段: - 一个“日期时间戳”值(日期/时间) - 两个字符串,“A”和“B”,均 < 20 个字符
我的应用程序的写入量很大(每秒数百次)。所有写入都是新记录;一旦插入,数据就永远不会被修改。
定期读取每隔几秒钟发生一次,用于填充一些近乎实时的仪表板。我查询日期/时间值和字符串值之一。例如,获取日期时间戳在特定范围内且字段“B”等于特定搜索值的所有记录。这些查询通常每个返回几千条记录。
最后,我的数据库不需要无限增长;我将通过手动删除它们或使用缓存到期技术(如果数据库支持)来清除 10 天以上的记录。
我最初在 MongoDB 中实现了这一点,没有意识到它处理锁定的方式(写入块读取)。随着我的扩展,我的查询花费的时间越来越长(现在 30 多秒,即使有正确的索引)。现在,根据我所学到的,我相信大量的写入正在耗尽我的阅读量。
我已经阅读了kkovacs.eu比较各种 NoSQL 选项的帖子,虽然我学到了很多东西,但我不知道我的用例是否有明显的赢家。我将非常感谢熟悉这些选项的人的推荐。
提前致谢!