有一张表,其中的数据经常更改。
其中大约有五十万行。每个单独的行都可以更改。
当然,没有必要一次全部显示出来。但您需要能够快速获取数据。越快越好。并且知道变化已经发生。
当然,您不想直接从数据库读取数据。
到目前为止,唯一想到的kafka是redis存储此类数据。
看起来你不能订阅更新redis,kafka但你不能保证它只包含最新的更新;一个键可能包含多个版本的数据。一般来说,这不是很重要,但仍然建议有一种选择。
一般来说,我正在寻找一个可以快速大量读取数据的数据仓库。请告知是否还有其他选项可以与Flutter、web和windows编写的 UI 很好地结合linux。
在 Flutter 应用程序中,您可以根据项目的要求和功能使用多种选项来处理本地数据库。在前端方面,主要有两种类型的数据库:SQL 和 NoSQL。
1.SQLite (使用Drift库)
SQLite 是一个关系数据库,它将数据存储在表(行和列)中并使用 SQL 语言执行查询。为了使用 SQLite,Flutter 经常使用Drift库(以前称为 Moor),它提供了一个方便的界面来处理 SQL 查询和自动代码生成。 Drift 通过使代码更具声明性和易于理解来简化数据库的使用。
为什么选择 SQLite:
通过 Drift 在 Flutter 中使用 SQLite 的示例可以在Drift 官方文档中找到。
2. NoSQL 数据库(Sembast、ObjectBox、Isar 等)
NoSQL 数据库以键/值、文档或对象格式存储数据。当数据没有严格的结构或处理数据时速度很重要时,通常会使用这些数据库。
3. SQL 和 NoSQL 之间的选择:
如果您有大量数据并且每条数据都可以独立于其他数据进行更改,那么关系数据库(例如 SQLite)将是首选。以下是一些原因:
如果您计划处理大量可能经常更改的结构化数据,并且数据一致性和对复杂查询的支持对您很重要,那么 SQLite 将是您的最佳选择。