我们有一个在 nodejs 中运行的应用程序服务器,我们正在尝试替换我们当前的持久性技术(MySQL)。我们正在考虑几个 nosql 选项,例如 CouchDB、MongoDB、Redis、Riak 等。数据的大小不会很大(最大 1 Gb),单个服务器解决方案就可以了。
我们正在开发自己的转换/查询语言,为了有效地工作,我们的持久性技术最重要的要求是它在数据结构上的导航速度非常快;检索记录/文档/节点,查找它链接到的记录,然后检索其中一些。这是在 1 次转换中递归完成的,典型的转换将递归检索大约 100.00 条记录。
我看到了 3 个可能的解决方案方向
1) 使用 NoSQL 产品作为简单的键值存储,不要使用它们的任何高级功能,如聚合、过滤等(也许索引除外),并为每条记录逐一发送请求。
2)使用过程中的键值存储(Alfred?)(我认为这更有效,但这只是直觉,尚未进行实际测量)。
3)我们的转换引擎是用javascript编写的,并且转换本身被定义为一个复杂的JSON结构,所以我们可以将转换引擎存储为一个支持Javascript的nosql产品(如MongoDB)中的视图,并且每次我们想要做一个转换,我们发送 JSON 结构,让 nosql 服务器进行转换。
你能想到的最好的方向/产品是什么?
克,
科恩