首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

閉關紀要:C# 結構化存儲在 Web 開發中的應用 (1)

     編輯:關於C語言

結構化存儲技術選型與架構決策記錄

面對 70 萬地名資料檔案,從無快取 → 檔案快取 → 結構化存儲的演進歷程與技術決策心得。

一、問題背景

方案優點缺點
無快取實作簡單DB 壓力大、回應慢、地圖查詢耗能
檔案快取DB 壓力小維護麻煩 (FTP 刪除)、單目錄檔案過多影響效能、虛擬主機限制 5 萬檔案

虛擬主機檔案數上限 5 萬,5GB 空間無法利用 → 需合併檔案 → 結構化存儲 (單一大檔案模擬檔案系統)。

二、技術選型考量

  • ZIP 格式:生成後不可修改、需壓縮/解壓開銷大 → 放棄
  • 結構化存儲:支援增刪改查、單一檔案、無額外壓縮 → 採用
  • 參考資源:
    • C# COM+ 結構化存儲 (JianHua Zhang)
    • BlueDog 結構化存儲 C# 庫 (含 Bug,文末附修復)

三、架構決策:不使用 VirtualPathProvider

雖 ASP.NET 建議繼承 VirtualPathProvider 整合檔案系統,但因:

  1. 實作複雜、彈性不足
  2. 難以整合 GZip 功能
  3. 業務邏輯耦合度高

選擇自定 FileSystem 抽象層 + Handler 路由攔截,在頁面層顯式調用,架構清晰可控。

四、效能風險提示

結構化存儲會增加伺服器 CPU/IO 負載,目前僅技術驗證階段,未上線部署。需壓測評估併發下的效能表現再決定是否採用。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved