我有大约一百万条记录要存储在内存中并执行分组,过滤,排序等。
我开始了解NEDb,但它不支持分组。 是否有任何其他快速且可扩展的内存数据库可以提供所有操作?
答案 0 :(得分:0)
对于键值的过滤和排序,任何键值存储都应该足够(redis,leveldb,berkeleydb,......有很多)。分组是一种聚合操作,正如另一个评论所述,它是关系数据库的主要部分。此外,由于数据在键值对中是不透明的,因此它可以是任意复杂的。某些键值存储还支持二级索引,因此您可以对其他属性进行过滤/排序。
eXtremeDB(我公司的产品)有一个本机(非SQL)接口,但它是一个结构化数据库(意味着它有一种模式语言)。模式语言非常类似于C ++(或者您可以使用C#或Java作为模式语言),因此您可以创建任意复杂的对象(甚至使用模式语言来定义键值对)。您可以索引任何字段,嵌套结构字段,向量或任何组合。所以它也可以处理过滤/排序。如果您的数据是时间序列数据,那么还有用于各种分组操作的函数库(平均值,窗口平均值,网格平均值等等)。如果它不是时间序列数据,那么就像键值对数据库一样,您必须自己进行分组操作。在可用的过滤/排序的支持下,这并不困难。