【问题标题】:Properly Handling Large Amounts of Data妥善处理大量数据
【发布时间】:2015-02-20 06:26:10
【问题描述】:

我冒险进入了极其未知的领域,我需要一些建议。我正在为 Twitch 构建一个 IRC 机器人,它可能包含数十万个帐户。以前我使用 Dictionary(of String, Integer) 将这些帐户及其余额存储在内存中,然后将它们写入文本文件并保存到磁盘。现在我存储了更多的数据,比如他们的在线时间,无论他们是关注者还是订阅者,他们捐赠了多少。所以我开始使用 SQLite 来存储帐户,我相信我需要使用带有虚拟模式的 DataGridView 来显示这些帐户并允许用户编辑任何数据。到目前为止,我在正确的轨道上吗?我的目标是在管理大量数据的同时保持简单,希望这不是矛盾。

现在我想 SQLite 数据库中的帐户需要被缓存,这样当需要进行更改或用户在 datagridview 中滚动他的帐户列表时,它就不会不断地从硬盘驱动器读取数据库(处于虚拟模式)。到目前为止我是对的吗?

如果我可以使用另一种更简单的方法,请告诉我,否则有人可以帮助理解我如何缓存这些帐户吗?我确实考虑将它们写入 Dictionary(of String, String),然后在需要使用特定值时拆分字符串。无论如何,我等待您的建议或 cmets。 谢谢。

【问题讨论】:

  • 这是一个非常广泛的问题,任何人都可以回答,因为您的问题可以通过多种不同的方式处理。你提到有大量的数据,很好,没关系。最重要的是你真正需要用它做什么。您是否查看过课程等来处理这个问题?如果您还没有提到您正在处理许多其他项目,那么我会将注意力集中在课程上。然后你可以考虑一个 Dictionary(Of Integer, yourclass) 或一个 ListOf;其中整数是帐户 id,yourclass 是与该 id 关联的对象...
  • 课程是我正在考虑的另一个想法。我没有太多创建它们的经验。我会创建一个帐户类并配置各种属性来保存我需要的值吗?然后为存储在我的数据库中的每个帐户创建一个新帐户(类)?
  • 请看我的回答,它涉及到这个信息。是的,它既简单又小,但会让你走上正确的道路。

标签: vb.net sqlite datagridview


【解决方案1】:

根据我上面的评论,您需要查看课程。请参阅下面的小示例...

 Public Class Accounts
  Public Property AccountID As Integer = 0
  Public Property AccountName As String = String.Empty
  Public Property IsFollower As Boolean = False
  **'Add more properties as needed'**

  Public Sub New()

  End Sub

 End Class

接下来,您可以调用数据库并从表中获取所有 id;您可以使用这些来查询其余数据以获取特定 ID...

遍历您拥有的 id 并获取他们的数据...

 Dim nAccount As Account = Nothing
 For each blah blah blah....
   nAccount = query from database... which will return your Account class object...

现在您可以将此对象(您的帐户类)添加到集合中;例如Dictionary(Of Integer, Account)ListOf()

正如我之前提到的,有几种不同的方法可以解决这个问题,这取决于您需要做什么以及您希望如何处理数据。

【讨论】:

  • 我确信这是实现它的方法。我现在要开始工作了。谢谢。
猜你喜欢
  • 1970-01-01
  • 2019-01-24
  • 2019-04-26
  • 1970-01-01
  • 1970-01-01
  • 2017-02-09
  • 2013-01-10
  • 2011-01-10
相关资源
最近更新 更多