gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 08:35:58 26 4
gpt4 key购买 nike

我们正在开发一个定制的缓存解决方案,该解决方案将使用 SQL Server 数据库来存储缓存的对象。应用程序的托管环境不提供“内存中”缓存,例如 memcached 或应用程序结构,因此我们必须使用 SQL Server 数据库。

虽然大多数缓存对象都是简单类型(int、字符串、日期等),但我们还需要存储更复杂的类型,例如 DataSetDataTables、通用集合和自定义类。

我对 .NET 的 native 序列化和反序列化经验很少,但我认为我们必须将对象序列化为某种形式(二进制、xml、JSON 等)以将其存储在数据库中,然后在我们使用时将其反序列化将其从数据库中拉出。我想听听专家关于“某种形式”应该是什么的意见。

我们使用 JSON.NET 将数据序列化为 JSON,以用于各种 AJAX 请求。我最初的想法是把缓存的数据序列化成JSON存储到数据库中。但是,我想就什么最有利于性能和数据完整性获得一些意见。

最佳答案

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

  1. 如果您将数据以二进制格式存储在数据库中,如果您想通过使用 Sql Server Management Studio 或通过文本编辑器查看数据,则人类无法读取数据。如果您想手动读取数据,则必须编写某种反序列化工具。

  2. 二进制格式可能会导致序列化对象的大小最小,其次是 json,最后是 XML 最大。至于实际大小差异,这将根据您的数据结构而有所不同。

  3. 就性能而言,二进制序列化可能比 json 或 XML 更快。但是,您必须用您的数据对其进行基准测试,看看有什么差异。

  4. 我认为所有三种格式类型都有出色的 .net 库和 BCL 支持,因此任何选择都应该是可行的。

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

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

关于asp.net - 我们应该使用什么序列化格式在 SQL Server 数据库中存储序列化对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15043999/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com