【问题标题】:Does Realm for .NET support blobs, byte[] type storage?Realm for .NET 是否支持 blob、byte[] 类型的存储?
【发布时间】:2016-05-18 15:03:19
【问题描述】:

我们可以将 byte[] 存储在 Realm.io 的PCL version 中吗?假设 100GB 的 3MB 图像效率如何?

【问题讨论】:

  • 请注意,没有可用的PCL 版本。 Realm 有一个本机内核,因此您始终拥有 Realm.PCL 程序集来为您的 PCL 提供声明,以及一个或多个本机 Realm C# DLL,供特定于平台的应用程序构建使用。 (目前我们只通过 NuGet 发布 IOS 和 Android 版本)。
  • 了解,任何基于 sqllite 的解决方案都需要一个原生库,现在使用 Avacache,但它缺乏性能。
  • 要明确一点:Realm 不是基于 SQLite,而是它自己的核心数据库引擎。
  • 没想到它运行的是自己的引擎,太好了。

标签: .net xamarin realm


【解决方案1】:

更新:Realm Xamarin 自 v0.75.0 起支持 byte[]。

我们还不支持二进制数据。不过它很快就会出现(不仅是字节数组,而是通过System.Data.Linq.Binary 类)。见Issue #510

根据经验,Realm 没有针对大型二进制数据数组进行优化,对于在手机或平板电脑上运行的东西来说,100GB 似乎不切实际。

【讨论】:

  • 常见的用例当然不是,但希望我们能超越它。当您考虑像 RaspberryPi 和固定用途的平板电脑和手机这样的物联网设备时,100GB 并非不切实际,实际上也是我们客户的需求。一般来说,现代 SQL 数据库不应该有二进制数据的问题,也许 SQLite 没有为此优化,但是拥有一个跨平台工作而不是使用文件系统的可靠存储肯定很好。
  • 此外,由于有效负载较大且这些设备没有太多内存,因此也可以支持 Streams。
  • 存储大二进制 blob 没有问题 - 通常只是不需要它,除非您想将文件作为一件大事传输。将图片存储在文件中并将对这些文件的引用存储在字符串属性中通常会更好,因为您不会在图片数据中进行搜索。
  • 我认为能够将图像存储在加密领域是一个很大的优势,否则你必须分别加密和解密它们
  • 这实际上是一个非常好的观点 - 没有考虑到那个功能。
猜你喜欢
  • 1970-01-01
  • 2018-07-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-18
  • 1970-01-01
  • 2011-06-13
  • 2020-08-23
相关资源
最近更新 更多