c# - Xamarin.iOS 上的 sqlite 中的缓慢 SELECT

标签 c# ios sqlite uitableview xamarin.ios

我的开发人员目前正在使用 Xamarin 编写适用于 iOS 的应用程序。我们正在使用 sqlite 来存储我们的数据。

现在我们有一个屏幕,在 UITableView 中显示一个完整的 sqlite 表。该表中有 16000 行,SELECT * FROM table 需要 3 秒才能完成。

有没有办法加快这个查询?索引无济于事,因为我们无论如何都需要获取所有列。

最佳答案

您需要同时查看所有 16000 行吗?如果您分批获得结果怎么办?选择一个适合您的情况且更易于管理的数字 - 我将任意选择 2000。您可以:获取前 2000,然后在幕后分批加载剩余的;或者您可以为用户实现无限滚动或手动按钮以“加载更多”。我不确定您的应用程序做什么或您的用例是什么(它可能是完全有效的),但 16000 条记录似乎太多了,用户无法一次以有用的方式与之交互。

您能否提供更多关于您的屏幕正在做什么或为什么显示所有这些记录的详细信息,也许我们可以想出更好的解决方案?

编辑: (这些无限滚动的例子使用的是 MVVM 架构)
这是 my application 中的一个实现.
James Montemagno(Xamarin Evangelist)有一个 good blog post关于它。 (这就是我获得灵感的地方。)
关于Xamarin Forums的讨论.

关于c# - Xamarin.iOS 上的 sqlite 中的缓慢 SELECT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33525385/

相关文章:

multithreading - SQLite 共享缓存多线程读取

c# - 调试 XMLHttpRequest POST

c# - 通过调用关联的属性而不是数据成员本身来从 ctor 中初始化私有(private)数据成员是一种好习惯吗?

c# - 在调用 RunWorkerAsync 之后但在函数退出之前取消订阅 DoWork 是否安全?

c# - 从数据库中获取数据并存储到字典中

ios - 即使内容/压缩设置为 1,图像也会增长

objective-c - 分割字符串搜索模式 Objective-C

objective-c - 防止捏合手势缩小到原始框架之外

java - Java单数据库线程如何实现

ruby-on-rails - 为什么我的 ruby​​ 在测试期间崩溃/段错误?