存储序列化对象到Oracle数据库(最好是XML) c#

本文关键字:XML 对象 序列化 Oracle 数据库 存储 | 更新日期: 2023-09-27 18:17:36

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

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

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

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

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

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

  • 什么是最好的数据类型来存储它?(我正在考虑序列化成平面XML并将其存储为CLOB/BLOB字符串)
  • 最快的方法是什么,或者我需要注意哪些步骤才能使其有效?
  • 如果我使用c#序列化和反序列化,我能保证对象是相同的吗(问XML序列化在c#中有多可靠,我正在考虑使用JSon代替)

让我知道你们的想法!

谢谢!

存储序列化对象到Oracle数据库(最好是XML) c#

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

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