2012-01-31 38 views
1

我將電子郵件正文中的HTML存儲在SQL Server nvarchar(max)列中。 在最小化HTML中的道路上有什麼好處?爲數據庫存儲最小化(壓縮;放氣)html:是否有必要?

通過最小化我的意思是刪除HTML文本流中多餘的空白和回車/換行符。我的術語可能不完全正確:我沒有考慮刪除任何HTML標籤/評論或類似的東西。

通過收益我的意思是在存儲空間的效率,插入/檢索的速度方面,所以好處集中在數據庫方面。

如果它值得做的,我應該注意什麼(例如,如果我用一個空格替換換行符,以後它可能會錯誤地呈現HTML)?

+0

我不會擔心它,除非您試圖節省磁盤空間。只看到沒有好處。 – Strelok 2012-01-31 03:41:12

+0

我不會在SQL數據庫中使用HTML。 – animuson 2012-01-31 03:41:43

+0

@animuson,不是嗎?如果你會說爲什麼不說... – sasfrog 2012-01-31 03:49:40

回答

1

你仍然需要一個完整的HTML解析器來理解什麼是HTML,什麼不是。大多數瀏覽器都會進行一些「修復」,以使圖形不可呈現的HTML以圖形方式呈現 - 這樣一來,如果不完全解析樹就不可能。

有人可能會粘上一些不好的HTML,因爲這會讓你的'簡單'解析器變得更容易出錯而不是惡意。不要搞固定HTML,逐字處理它,讓不良內容自行停止。

+0

感謝您的回覆,很好的建議。儘管我並沒有試圖「解析」或「修復」HTML,只是將其作爲一個更小的流來存儲。我同意不良內容應該「懸掛」自己:) – sasfrog 2012-01-31 04:01:45

1

HTML將僅作爲BLOB存儲在數據庫中。你將無法解析它,搜索等(嗯,你在技術上可以,但那很愚蠢)。在這種情況下,您可以(不)在客戶端壓縮它併發送它並將其作爲varbinary(max)存儲在數據庫中。

折衷是CPU時間來管理壓縮vs增加的存儲+網絡流量。

我不會淨化HTML,因爲您將失去可讀性和可能的​​原創內容。