1
3
经过多次测试,我最终使用内存映射文件,用稀疏位(NTFS)标记它们,使用的代码来自 NTFS Sparse Files with C# . 维基百科解释了 sparse file 是。 使用稀疏文件的好处是,我不必关心我的ID在什么范围内。如果我只写2006000000到2010999999之间的ID,那么文件只会从文件中的偏移量250750000中分配625000字节。文件系统中未分配到该偏移量之前的所有空间。每个ID都作为一个集合位存储在文件中。有点像位数组。如果ID序列突然改变,那么它将分配到文件的另一部分。 为了检索设置的ID,我可以执行OS调用来获取稀疏文件的分配部分,然后检查这些序列中的每个位。同时检查是否设置了一个特定的ID非常快。如果它落在分配的块之外,那么它就不在那里,如果它落在里面,那么它只是一个字节的读取和一个位屏蔽检查,以查看是否设置了正确的位。 因此,对于您有许多ID的特定场景,您希望以尽可能快的速度检查这些ID,这是迄今为止我发现的最理想的方法。 好的部分是,内存映射文件也可以与Java共享(结果是需要的)。Java还支持Windows上的内存映射文件,实现读/写逻辑是相当微不足道的。 |
2
1
我真的认为你应该在做决定之前先尝试一个好的数据库。从长远来看,像这样的事情将是一个挑战。你的用户群实际上很小。SQL Server应该能够无任何问题地处理您需要的内容。 |
3
0
2000名用户并不算太差,但有1000万个相关项目,你真的应该考虑将其放入数据库。DBS可以完成您所需要的所有存储、持久性、索引、缓存等,而且它们的性能非常好。 它们还允许将来更好地扩展。如果您突然需要处理200万个用户和数十亿个具有良好数据库的设置,将使扩展成为一个没有问题的问题。 |
Robert King · Unity C#语法问题-转换位置 1 年前 |
JBryanB · 如何从基本抽象类访问类属性 1 年前 |
law · 检查答案按钮的输入字符串格式不正确 2 年前 |
i_sniff_ket · 在unity之外使用unity类 2 年前 |