0

在我开始编写代码来处理这个问题之前,我想要一个关于什么是最好的方法的反馈。

这个问题背后的背景是,我想为 C# 对象创建某种存储,以防程序崩溃和数据丢失。

我想将一个SERIALIZED对象存储到数据库中,然后能够从 ODP.NET 查询它并成功反序列化它并将其转换为同一个对象。

顺便说一句,序列化对象的数据在序列化后大约为50 兆字节

用法: 每天都会存储一个序列化对象,每天最多检索10次。

我的问题是,如果有人以前这样做过;

  • 用于存储它的最佳数据类型是什么?(我正在考虑序列化为平面 XML 并将其存储为 CLOB/BLOB 字符串)
  • 最快的方法是什么,或者我需要注意哪些步骤才能使其高效?
  • 如果我使用 C# Serialize 和 Deserialize,我是否保证对象将是相同的(非常想问 C# 中的 XML 序列化有多可靠,我正在考虑改用 JSon)

让我知道你们的想法!

谢谢!

4

1 回答 1

1

如果您的对象主要是文本,那么在您序列化数据之后(XML 或 JSON 都可以,假设所有属性都是真正可序列化的),我建议将您的数据压缩成一个字节数组并将其存储为二进制文件。当你检索它时,你只需解压缩它然后反序列化它。文本压缩得非常好,尤其是 XML,因此您可能会将 50MB 压缩到 10MB 或更少。

根据您的评论,压缩绝对是值得的。如果您每天只增加 10MB 左右,听起来它不会对您的数据库产生负面影响——每年只需几 GB。

于 2013-06-07T15:34:21.870 回答