database - 在支持分组的内存数据库中
问题描述
我有大约一百万条记录,我想将它们存储在内存中并执行分组、过滤、排序等。
我开始了解 NEDb,但它不支持分组。提供所有操作的内存数据库中是否还有其他快速且可扩展的?
解决方案
对于键值的过滤和排序,任何键值存储都应该足够了(redis,leveldb,berkeleydb,......有很多)。分组是一种聚合操作,正如另一位评论的那样,它是关系数据库的主要内容。此外,由于数据在键值对中是不透明的,因此可以任意复杂。一些键值存储还支持二级索引,因此您可以对其他属性进行过滤/排序。
eXtremeDB(我公司的产品)有一个本地(非SQL)接口,但它是一个结构化数据库(意味着它有一种模式语言)。架构语言很像 C++(或者您可以使用 C# 或 Java 作为架构语言),因此您可以创建任意复杂的对象(甚至使用架构语言来定义键值对)。您可以索引任何字段、嵌套结构字段、向量或任何组合。所以它也可以处理过滤/排序。如果您的数据是时间序列数据,那么还有一个用于各种分组操作(平均值、窗口平均值、网格平均值等)的函数库。如果不是时间序列数据,那么就像键值对数据库一样,你必须自己进行分组操作。在可用的过滤/排序的支持下,这并不难。
推荐阅读
- java - 根据给定条件返回列表元素对
- javascript - ×TypeError:无法读取未定义的属性“边框”
- python - PythonChess - 获取引擎来预测一个位置的最佳移动列表
- linux - 如何在不使用 sudo 且不在根目录下运行 man ?
- integration - 迄今为止,人工制品将人工制品标记为“集成”不起作用
- ruby - 这是很好的解决方案吗?
- php - PHP 出现错误:在设置标头('charset=utf-8')中找不到文件;
- python - 井字游戏的 If 语句问题
- airflow - 如何在 Airflow 中使用 SimpleHttpOperator
- android - 可观察的 RxJava 测试“重复”在测试中创建无限循环