android sqlite性能最佳实践(通过始终打开的连接/游标直接数据访问VS按需访问和自定义对象)

发布于 2024-10-15 00:10:13 字数 342 浏览 3 评论 0原文

我目前正在将我的 iPhone 应用程序移植到 Android。这个应用程序大量使用 SQLite 数据。在 iPhone 上,我用 sqlite 数据填充自定义对象,根据需要多次打开和关闭与数据库的连接,

但是在 Android 上,我还没有遇到很多遵循这种方法的教程。他们只是使用光标并直接显示数据,而不使用自定义对象和集合

我想知道在Android上是否有任何特殊原因?你会建议我做什么?即:是否可以在 android 上的 sqlite 数据库上建立始终连接/光标并直接显示数据,或者采用 iphone 方式,即从 sqlite 填充自定义对象集合并将 UI 数据绑定到该集合sqlite 光标的问题

提前感谢各位

im currently porting my iphone app to android. this app makes heavy use of sqlite data. on the iphone i populate my custom objects with sqlite data, open and close my connection to the database multiple times on demand

however on the android, i have not come across many tutorials which follow this approach. they simply use a cursor and show the data directly without making use of custom objects and collections

i wanted to know if there was any particular reason for this on the android? what would you suggest me to here? ie: is it feasible to have an always on connection / cursor the the sqlite db on the android and display the data directly OR go the iphone way that is to populate collection of custom objects from sqlite and have the UI data bound to this collection instead of the sqlite cursor

thanks in advance folks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

东北女汉子 2024-10-22 00:10:13

我认为最佳方法不会因平台而有任何显着程度的变化。

  1. Sqlite 在连接中保留缓存,因此保持连接打开通常是有利的。
  2. 您可以通过准备一次报表并重复使用它们来节省一些时间。
  3. 查询启动非常重要,因此将您需要的所有内容加入到一个查询中。与 join 语句相比,在一个查询中获取对象列表并对各个对象启动单独的查询非常慢。
  4. 如果您可以直接从数据库填充 UI 对象,那么遍历任何中间对象只会给内存管理器带来不必要的负载(无论是

I don't think optimal approach will vary with platform to any significant degree.

  1. Sqlite keeps caches in the connection, so it's usually advantageous to keep the connection open.
  2. You can save some time by preparing the statements once and reusing them.
  3. Query startup is quite significant, so join everything you will need in one query. Getting a list of objects in one query and than starting separate queries for individual objects is very slow compared to join statement.
  4. If you can populate the UI objects directly from the database, going through any intermediate objects is just putting unnecessary load on the memory manager (whether ga
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文