我有一个表,其中包含一些标准字段以及其中一列中的 JSON 文档。我们使用 SQL Server 2017 存储所有内容,数据由使用 Entity Framework 6 的 C# 应用程序使用。表本身可能有数万个条目,这些条目(或者更确切地说,它们上的 JSON 列)必须是每天更新。我试图弄清楚使用什么数据类型来获得最佳性能。
我读过这个:
目前,JSON 文档以 30-200 KB 的文件形式出现。有可能超过 256 KB 的障碍,但目前超过 1 MB 的可能性非常低。那将指向 NVARCHAR。也在这里:
人们建议将 JSON 存储为 NVARCHAR(MAX) 是要走的路。
但是,有两件事让我担心:
- 首先,随着时间的推移会出现碎片化,有这么多的作者(这是 Filestream 似乎具有优势的领域之一,无论列大小如何)。我不确定这会如何影响性能......
- 其次,我不确定在数据库中存储这么多文本数据是否会因为大小而减慢速度?据我了解,FileStream 的另一个优点是数据库大小成本相当稳定,无论磁盘上的文件大小如何,这有助于随着时间的推移保持性能。还是我错了?
考虑到我的用例,你会选择什么?