我想为ID和指定名称之间的快速查找创建一个hashmap类型的东西。
参赛人数将达数十万。因此,我不想把一切都留在记忆中。无论如何,由于这个过程中的性能很重要,我不想为每个ID进行数据库查询。
那么,我的机会是什么?如何在大型数据集上快速查找?
答案 0 :(得分:3)
快速搜索发现了这些:
生产就绪:
可能也没有生产准备,但值得一看:
答案 1 :(得分:1)
我心中有几种解决方案!
1)转到lucene
- >存储在文件中
2)在数据库中创建view
- >存储在数据库中
所以你要为之奋斗!!
答案 2 :(得分:1)
几年前我有类似的要求,并且避免使用数据库,认为它会有很高的查看时间。与您类似,我有大量的值,因此无法在内存数据结构中使用。所以我决定顺序解析文件系统。它有点慢,但我无能为力。
然后我在DB上探索了更多,并将DB用于我的应用程序,只是为了测试。最初它与文件系统相比速度较慢。但在索引表和优化数据库之后。事实证明它至少比文件系统快10-15倍。我无法记住确切的性能结果,但是从大型数据集中读取数据只需要150-200毫秒(文件系统上的数据大小约为700 MB),而文件系统的数据则为3.5秒。
我使用DB2数据库和this guide来进行DB2的性能调优
除了设置数据库之外,您还可以通过网络将其重复用于多个应用程序。
答案 3 :(得分:0)
如果你看快速解决方案。回答in-memory database
Redis,Memcached,Hazelcast,VoltDB等。