请问,桌面应用有什么解决方案保存大的内容的字段?
因为桌面应用,一般是使用嵌入式数据库,比如sqlite3。
现在有一个需求:
比如:一个字段可能有16MB大小,但是这个不能作为一个字段进行保存在表中。
请问在桌面应用场景中,针对这样的场景,有什么方案可以处理呢?
请问,桌面应用有什么解决方案保存大的内容的字段?
因为桌面应用,一般是使用嵌入式数据库,比如sqlite3。
现在有一个需求:
比如:一个字段可能有16MB大小,但是这个不能作为一个字段进行保存在表中。
请问在桌面应用场景中,针对这样的场景,有什么方案可以处理呢?
在桌面应用场景中,处理大内容字段(如超过数据库字段限制的大小,如SQLite的BLOB字段大小限制)时,可以采用以下几种解决方案:
方案描述:
将大内容直接存储为外部文件,并在数据库中保存该文件的路径或引用。这是处理大文件内容最常见和直接的方法。
实现步骤:
优点:
缺点:
方案描述:
尽管你提到SQLite的BLOB字段可能有限制,但大多数现代数据库系统(包括SQLite的较新版本)都支持存储大对象(BLOBs),这些对象可以非常大(理论上可以达到数据库文件大小限制)。
实现步骤:
优点:
缺点:
方案描述:
将大内容分割成多个较小的片段(分片),并将这些片段分别存储在数据库的多个字段或记录中。
实现步骤:
优点:
缺点:
对于桌面应用来说,外部文件存储通常是最简单且有效的解决方案,特别是当处理的内容远大于数据库字段的限制时。这种方法不仅易于实现,而且能够避免数据库文件过大带来的性能问题。然而,具体选择哪种方案还需根据应用的具体需求和场景来决定。
8 回答4.7k 阅读✓ 已解决
6 回答3.4k 阅读✓ 已解决
6 回答2.3k 阅读
5 回答6.3k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
3 回答2.5k 阅读✓ 已解决
为啥非得用关系型数据库呢?写文件不就好了?
P.S. SQLite 里 BLOB 最大字节数由编译时的
SQLITE_MAX_LENGTH
宏决定,默认值是 10 亿,换算下来近 1000MB,15MB 存起来应该无压力才对。