【问题标题】:Flutter app: fetch data from sqlite frequently or store in memoryFlutter 应用:频繁从 sqlite 获取数据或存储在内存中
【发布时间】:2021-09-14 22:17:22
【问题描述】:

我有一个颤振应用程序,其中包含一些主数据和 2 个具有父子关系的较大表。数据存储在设备上的 SQLite 数据库中。我预计最大的表(即子表)中有数百或数千条记录。从这些记录中,我创建了对象列表。 在应用程序中,我需要这些按不同字段排序的列表。对我来说,每次需要时从数据库中获取数据似乎要容易得多。

我的问题是,哪种方法更好?

  • 当应用程序打开并使用内存中的这些列表时获取整个数据库。对我来说,这个解决方案的缺点是我需要维护列表的顺序,与单个 SQL 语句相比,这可能会非常痛苦。这些列表中对象的顺序非常重要!
  • 还是每次需要时都从数据库中读取数据?这意味着我只从数据库中读取给定屏幕所需的那些记录。

从性能的角度来看,哪种方法更好?

【问题讨论】:

    标签: flutter sqflite


    【解决方案1】:

    除非它的 MVP 数据太少,否则接近两个。 实现起来会有点麻烦,但它会使应用程序更具未来性,并且不会浪费内存负载(如果设备确实有足够的内存)。 您可能必须实现分页请求(选择,带有限制和偏移),而如果过滤器发生变化,用户滚动并重置这些请求。

    【讨论】:

      【解决方案2】:

      通常,分页是性能的最佳选择。

      如果你更优化。缓存已经加载的内容,向下滚动时预加载下一页

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-04-04
        • 1970-01-01
        • 1970-01-01
        • 2012-04-28
        • 2020-07-15
        • 1970-01-01
        • 1970-01-01
        • 2014-01-21
        相关资源
        最近更新 更多