1

我正在尝试处理对VB.NET中大量数据的频繁检查。

每次我的应用程序的输入发生变化时,我都需要检查这么大的数量,而且这种情况也很频繁。

以下哪个更智能、更快速?

  1. 在应用程序启动时读取文件并将全部填充到变量集合中?

    应用程序加载: load the file然后for each line in file add to array mycollection (因此文件将仅加载一次)
    请求检查:( for each in mycollection if = Something then do stuff 对于每个请求,只需检查是否有集合)

    • 这对我来说似乎更快,因为我不需要在每次请求时加载所有数据。但是由于集合变量包含大量字符串,应用程序的内存消耗会更高?!?
  2. 在每个请求中读取文件?

    请求检查:与 1 相同,但每次都被请求。(读取每个请求的文件并进行比较)

    • 情人内存使用,但如果我没记错的话会更慢。

我想避免使用 Microsoft SQL Server

有没有更好的方法?

4

2 回答 2

1

不知道文件中包含的确切内容或文件有多大,但是根据您的描述假设文件中存在一些逻辑上的数据划分,我将解决此问题的方法如下:

在启动时,根据文件中数据的逻辑划分,将文件分成多个较小的文件,并以与您需要执行的搜索相关的方式命名。

分割文件后,您可以实现滚动缓存机制,将 10 个小文件保留在内存中,当您需要未缓存的信息时,删除最少使用的文件并加载新文件。

这样,您最终会在内存使用和性能之间取得平衡。

于 2012-10-27T00:54:55.157 回答
0

我建议您至少尝试一下NoSQL Database

想知道您的问题,我相信 NoSQL 数据库将在将您的数据记录在磁盘上并仍然具有性能(缓存)和可扩展性方面提供最佳效果。

MongoDB是一个很好的入门产品,包括它的在线 shell,你可以尝试一下。

于 2012-10-27T00:54:12.490 回答