【发布时间】:2015-09-01 20:47:33
【问题描述】:
我有很多静态数据(即只读数据,不是事务性的),这些数据在几天内只更新一次。
我必须支持对该数据的搜索(api 调用,而不是 sql)。所以我想我只是将它加载到内存中,并偶尔刷新内存中的数据。 RAM 应该不是问题,因为我们使用的是 64 位...数据可以在 2 GB 到 50 GB 范围内。
我希望我可以比查询数据库(索引表)更快地处理对内存数据的搜索。
我可以采用某种“方法”来设计这个内存数据吗?
更新:
我的问题不在于使用什么 RDBMS / noSQLDB。当我不再受存储机制的约束时,我想知道如何在内存中构造数据。
【问题讨论】:
-
您可以使用内存中的关系数据库,例如HSQLDB。
-
这真的是最好的方法吗?
-
我会说这在很大程度上取决于数据类型以及您需要支持的搜索类型。图像搜索可能需要与纯文本数据上的简单子字符串匹配或结构化数据上的复杂关系查询不同的解决方案。您应该添加有关数据和查询类型的更多信息。
-
我正在研究一个关系数据库。类似于跟踪商店库存或存储公司员工信息的东西。我确实有几个具有日期时间组件的实体来跟踪发生的事件(以毫秒为单位)。所以是的,大多数查询将是“搜索 where something = "this" 或类似 "this%"
-
为什么不把它存入数据库呢?使用数据库进行查询搜索难道不合逻辑吗?
标签: java performance architecture data-modeling