ios - Sqlite 数据库在我的 ios 应用程序中获取大量记录
问题描述
在我的 ios 应用程序中,我需要从 sqlite 数据库中获取大约 300 000 条记录(选择查询)。但是正在发生的事情是在 xcode 模拟器中占用了大约 6GB 内存,当我在设备中运行时(它从 1GB 中占用了 700MB),而不是设备崩溃了。我怎样才能最好地克服这个问题。
解决方案
据我了解,您正试图在移动设备上一次从 SQL 数据库中查询 300,000 条记录,并且内存不足。
300,000 条记录对于移动设备来说已经很多了。很难想象所有这些记录同时显示给用户。通常在 tableview 中显示 10-20 个,并且随着用户滚动,他希望能够看到更多。
当一个人第一次加载页面时,您不需要加载他可以滚动到的所有可能的实体。你只需要数一数。当用户滚动时,您可以根据需要获取记录。例如,您首先对前 20 个进行查询,当用户滚动时,您会加载记录 21-40,然后是 41-60 等。您可以将获取的内容保存在一个小缓存中,并在用户滚动时将其清除,这样你一次没有太多的记忆。
如果没有看到您的代码,很难给出更好的建议,但我希望这会有所帮助。
推荐阅读
- r - 如何将 RGB 值的向量转换为十六进制
- java - 在 Microsoft Word 中查找文本并替换为 Java 字符串数组
- go - Golang - Visual Studio Code 中的本地导入警告
- ubuntu - 如何停止自建 Kubernetes 集群
- javascript - JQuery 按钮单击导致可编辑 div 中突出显示的文本失去焦点
- uwp - 如何更改 NavigationViewItem 中的字体颜色(前景)?
- kubernetes-helm - Helm 简单的 for 循环
- android - Android 呼叫电话号码侧边菜单
- html - 右图,左文字有效,但左图,右文字无效(用于网站)
- python-3.x - 使用 get_text 处理数组的所有值