我有一个即将推出的项目,它的核心是存储两个整数之间的映射。 (A列中的1234映射到B列中的4567)。大约有1000个映射。每次用户点击网站上的某个网址时,都会对映射进行查找。
似乎将它插入我们的关系数据库是过度的。在每次击中时选择它的开销似乎很高。另一方面,将它存储为XML文件并在每次击中时从磁盘加载该平面文件也似乎不是最佳的。
所以我的问题是:保持这种映射的理想数据结构和方法是什么?
系统架构是tomcat + apache + mysql。代码将在tomcat中运行。
编辑: 映射是静态的,我不需要改变它们。看起来像hashmap中的XML文件是要走的路。
答案 0 :(得分:4)
我会使用属性文件或XML文件,在启动时将其加载到内存中(作为HashMap<Integer, Integer>
),然后从hashmap中提供。
如果您需要在执行时更改映射,您可以立即将其写回或者可能只是逐步写入更改(并更新内存中的映射),并使用一个进程来统一原始文件和启动时的更改。如果你需要扩展到多个服务器,这当然不能很好地工作 - 那时你需要弄清楚你需要什么样的一致性等等。数据库可能是最简单的方法继续,但这取决于实际要求。
答案 1 :(得分:2)
我同意关系数据库似乎有点矫枉过正。您可能想要查看NoSQL数据库。 MongoDB是我个人的最爱,但那里有很多。在NoSQL databases
上搜索。
NoSQL数据库允许您将此映射存储为简单文档,并且可以极快地搜索和更新数据。显然,它是你堆栈中的另一种技术,所以你需要考虑的事情。
答案 2 :(得分:0)