在 Android 中查询大型数据集的最快方法

Posted

技术标签:

【中文标题】在 Android 中查询大型数据集的最快方法【英文标题】:Fastest way to query a large dataset within Android 【发布时间】:2013-03-27 14:13:36 【问题描述】:

我即将将 ios 应用移植到 android。该应用程序使用核心数据支持的 150MB 的 SQLite 数据库。一些繁重的查询有时需要长达 10 秒。因此,我正在寻找在 Android 中查询数据的完美方式。在我开始之前有什么好的建议吗?

或者任何我可以用来让生活更轻松的库,比如 ORM 工具、GreenDAO、ORMLite?

【问题讨论】:

识别代价高昂的查询并确保您正在优化您的查询并在您的表上有良好的索引。 GreenDAO 将为您节省一些输入,但不会使 DB 更快。 【参考方案1】:

ORMLiteGreenDAO 都是不错的库,但我不知道它们是否符合您的需求。他们会使用反射(至少ORMLite 我认为是这样)并且可能会让你的事情变得更慢。

我不完全知道您将如何使用您的数据,但一个不错的解决方案是使用Loaders,更具体的CursorLoaders 来访问您的数据库。默认情况下,这将按顺序访问您的数据,因此默认情况下不会加载所有条目。

【讨论】:

只是为了确认GreenDAO 不使用反射。相反,您创建一个生成器项目,该项目将为您的 DAO 和实体生成 java 源代码。见DAO Code Generation Project

以上是关于在 Android 中查询大型数据集的最快方法的主要内容,如果未能解决你的问题,请参考以下文章

从 sql server 迁移到大型数据集的 sqlite 的最快方法

在具有大型数据集的 Firebase 数据库上查询非常非常慢

SQL Server 中对大型数据集的慢速不同查询

对于大型数据集的查询,日期类型是不是比日期时间更高效?

如何改进热图的大型数据集的 KQL 查询

如何优化大型数据集的查询?