RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / 问题 / 1597532
Accepted
Falchio
Falchio
Asked:2024-10-23 01:00:32 +0000 UTC2024-10-23 01:00:32 +0000 UTC 2024-10-23 01:00:32 +0000 UTC

在用 flutter 编写的 UI 中显示数据频繁变化的表格

  • 772

有一张表,其中的数据经常更改。
其中大约有五十万行。每个单独的行都可以更改。
当然,没有必要一次全部显示出来。但您需要能够快速获取数据。越快越好。并且知道变化已经发生。
当然,您不想直接从数据库读取数据。

到目前为止,唯一想到的kafka是redis存储此类数据。

看起来你不能订阅更新redis,kafka但你不能保证它只包含最新的更新;一个键可能包含多个版本的数据。一般来说,这不是很重要,但仍然建议有一种选择。

一般来说,我正在寻找一个可以快速大量读取数据的数据仓库。请告知是否还有其他选项可以与Flutter、web和windows编写的 UI 很好地结合linux。

flutter
  • 1 1 个回答
  • 22 Views

1 个回答

  • Voted
  1. Best Answer
    MiT
    2024-11-02T01:10:58Z2024-11-02T01:10:58Z

    在 Flutter 应用程序中,您可以根据项目的要求和功能使用多种选项来处理本地数据库。在前端方面,主要有两种类型的数据库:SQL 和 NoSQL。

    1.SQLite (使用Drift库)

    SQLite 是一个关系数据库,它将数据存储在表(行和列)中并使用 SQL 语言执行查询。为了使用 SQLite,Flutter 经常使用Drift库(以前称为 Moor),它提供了一个方便的界面来处理 SQL 查询和自动代码生成。 Drift 通过使代码更具声明性和易于理解来简化数据库的使用。

    为什么选择 SQLite:

    • 结构化数据:如果您的数据具有清晰的结构(例如,有字段的表),并且如果您需要数据之间的复杂关系,例如一对多或多对多关系,那么关系型数据库如 SQLite 、是一个很好的选择。
    • 事务和数据完整性:SQLite 支持事务,这有助于确保发生故障时的数据完整性。
    • 查询灵活性:SQL 查询使您可以灵活地选择数据、过滤数据和执行聚合函数。
    • 大数据支持:SQLite 擅长处理大量数据和复杂查询。

    通过 Drift 在 Flutter 中使用 SQLite 的示例可以在Drift 官方文档中找到。

    2. NoSQL 数据库(Sembast、ObjectBox、Isar 等)

    NoSQL 数据库以键/值、文档或对象格式存储数据。当数据没有严格的结构或处理数据时速度很重要时,通常会使用这些数据库。

    • Sembast是一个简单的 Flutter NoSQL 数据库,以键值和 JSON 文档的形式存储数据。它不需要复杂的设置,非常适合小型应用。pub.dev 上的 Sembast
    • ObjectBox是一个针对高性能而优化的面向对象数据库。它非常适合处理大量对象并提供较高的读写速度。pub.dev 上的 ObjectBox
    • Isar是另一个高性能 NoSQL 数据库,支持将数据存储为对象,非常适合处理大量数据。pub.dev 上的伊萨尔

    3. SQL 和 NoSQL 之间的选择:

    如果您有大量数据并且每条数据都可以独立于其他数据进行更改,那么关系数据库(例如 SQLite)将是首选。以下是一些原因:

    • 性能:SQLite 针对处理大量数据进行了更好的优化。
    • 大量结构化数据:SQLite 更容易管理具有清晰结构(例如,带有字段的表)和它们之间复杂关系的数据。
    • 对单个记录的更改:在关系数据库中,您可以有效地更新或更改表中的特定记录,而不影响其余数据。
    • 可靠性和事务:SQLite提供可靠性并支持事务,这对于维护数据一致性非常重要,特别是在并行处理多个数据时。

    如果您计划处理大量可能经常更改的结构化数据,并且数据一致性和对复杂查询的支持对您很重要,那么 SQLite 将是您的最佳选择。

    • 1

相关问题

  • 1 秒后打印每个列表值

  • 颤振函数调用

  • 如何将代码分配给参数

  • 如何在字符串中放置空格?

  • 更改 Firestore 中的布尔值

  • 显示数据

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    我看不懂措辞

    • 1 个回答
  • Marko Smith

    请求的模块“del”不提供名为“default”的导出

    • 3 个回答
  • Marko Smith

    "!+tab" 在 HTML 的 vs 代码中不起作用

    • 5 个回答
  • Marko Smith

    我正在尝试解决“猜词”的问题。Python

    • 2 个回答
  • Marko Smith

    可以使用哪些命令将当前指针移动到指定的提交而不更改工作目录中的文件?

    • 1 个回答
  • Marko Smith

    Python解析野莓

    • 1 个回答
  • Marko Smith

    问题:“警告:检查最新版本的 pip 时出错。”

    • 2 个回答
  • Marko Smith

    帮助编写一个用值填充变量的循环。解决这个问题

    • 2 个回答
  • Marko Smith

    尽管依赖数组为空,但在渲染上调用了 2 次 useEffect

    • 2 个回答
  • Marko Smith

    数据不通过 Telegram.WebApp.sendData 发送

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5