加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 我们应该使用什么序列化格式在SQL Server数据库中存

发布时间:2020-12-16 03:39:39 所属栏目:asp.Net 来源:网络整理
导读:我们正在开发一个定制的缓存解决方案,它将使用SQL Server数据库来存储缓存的对象.应用程序的托管环境不提供“内存中”缓存,例如memcached或app fabric,因此我们必须使用SQL Server数据库. 虽然大多数缓存对象都是简单类型(int,string,date等),但我们还需要存
我们正在开发一个定制的缓存解决方案,它将使用SQL Server数据库来存储缓存的对象.应用程序的托管环境不提供“内存中”缓存,例如memcached或app fabric,因此我们必须使用SQL Server数据库.

虽然大多数缓存对象都是简单类型(int,string,date等),但我们还需要存储更复杂的类型,如DataSet,DataTables,泛型集合和自定义类.

我对.NET的本机序列化和反序列化的经验很少,但我想我们必须将对象序列化为某种形式(二进制,xml,JSON等)以将其存储在数据库中,然后在我们将其取出时将其反序列化的数据库.我想对“某种形式”应该是什么有一些专家意见.

我们正在使用JSON.NET将数据序列化为JSON以用于各种AJAX请求.我最初的想法是将缓存的数据序列化为JSON以将其存储在数据库中.但是,我想就性能和数据完整性最佳方面提出一些意见.

解决方法

您提到的所有三个序列化选项(二进制,json或XML)都是序列化格式的有效选择.有 many other serialization formats但你提到的三个是最常见的.至于在三者之间进行选择,以下是一些注意事项:

>如果您将数据以二进制格式存储在数据库中,那么如果您想通过使用Sql Server Management Studio或文本编辑器查看数据,那么它就不是人类可读的.如果要手动浏览数据,则必须编写某种反序列化工具.
>二进制格式可能会导致序列化对象具有最小的大小,其次是json,XML是最大的.就实际大小差异而言,这将随您的数据结构而变化.
>就性能而言,二进制序列化可能比json或XML更快.但是,您必须使用您的数据对此进行基准测试,以了解其差异.
>我认为有很好的.net库和BCL支持所有三种格式类型,所以任何选择都应该是可行的.

因此,您的选择取决于哪些因素对您最重要:CPU利用率,磁盘存储空间,人类可读性和/或个人偏好.

我们已经广泛使用json来序列化我们的对象以便在数据库中存储,使用JSON.Net并且我们非常喜欢它.有时通过SSMS手动查看数据很方便,json比XML更紧凑.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读