【发布时间】:2010-03-04 09:09:11
【问题描述】:
我有一个包含大约 100 万条记录的数据库。我的应用程序对这些记录进行频繁的增量搜索并过滤 UI 列表。该场景更像是“电话联系人搜索”。
目前我正在关注这个:
- 将数据加载到数据源层中的
List<myModel>`- 将其发送到 MainViewModel
- 将
List<myModel>加载到ObservableCollection<myViewModel>(绑定到 ListView)- 根据关键字,过滤`ObservableCollection
- 在关闭应用程序时,更新数据库 [自 ObservableCollection 也可能是 由用户更新]
我的问题:
- 这是有效的方法吗?
- 现在我的应用程序消耗大约 30 到 50 MB 的内存。公平吗?
- 或者我应该在数据库中执行我的搜索吗? [但我不能在速度上妥协]
- 是否应该始终创建 myModel 列表并将其加载到我的 ObservableCollection 中?
- 还建议我使用非常适合增量搜索的过滤技术(第 4 点)。目前我有一个 GenericList 包含整个集合以供查找并将过滤的项目添加到 ObservableCollection,清除所有以前的项目。
编辑:之前我只检查了 37k 条记录的内存消耗。 250k条记录,内存消耗超过100MB:(。所以现在我计划只在内存中保留10k条记录,如果超过了我会查询db。有什么建议吗?
提前致谢, 转向
【问题讨论】:
标签: wpf search mvvm filter observablecollection