簡體   English   中英

在數據庫列中存儲 JSON - NVARCHAR(MAX),FileStream?

[英]Storing JSON in database column - NVARCHAR(MAX), FileStream?

我有一個表格,其中包含一些標准字段以及其中一列中的 JSON 文檔。 We use SQL Server 2017 to store everything and data is consumed by a C# application using Entity Framework 6. The table itself will possibly have tens of thousands of entries , and these entries (or rather, the JSON column on them) will have to be每天更新。 我試圖弄清楚使用什么數據類型來獲得最佳性能。

我讀過這個:

SQL 服務器 2008 FILESTREAM 性能

目前,JSON 文檔的文件大小為 30-200 KB。 有可能超過 256 KB 的障礙,但目前超過 1 MB 的可能性非常低 那將指向 NVARCHAR。 也在這里:

用於存儲 JSON 字符串的最佳 SQL 數據類型是什么?

人們建議將 JSON 存儲為 NVARCHAR(MAX) 是 go 的方式。

但是,有兩件事讓我擔心:

  1. 首先,隨着時間的推移會出現碎片化,有這么多的作者(這是 Filestream 似乎具有優勢的領域之一,無論列大小如何)。 我不確定這會如何影響性能......
  2. 其次,我不確定在數據庫中存儲這么多文本數據是否會因為大小而減慢速度? 據我了解,FileStream 的另一個優點是數據庫大小成本相當穩定,無論磁盤上的文件大小如何,這有助於隨着時間的推移保持性能。 還是我錯了?

考慮到我的用例,你會選擇什么?

這不僅僅是性能問題,還涉及開發時間、知識和維護 如果一切都已經在使用實體框架的 c# 中,為什么還要使用更復雜的東西? 我的方法是使用開發人員最熟悉的解決方案,直到出現性能瓶頸,然后進行基准測試。

兩個具有實際表大小的解決方案之間的比較將使您真正了解是否值得進行任何調整。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM