2009-11-26 90 views
0

我正在開發工作中的內容管理系統。我將有一個專欄來保存我們用戶的內容(HTML),而我不太清楚要使用哪種專欄類型。我不想任意指定最大長度,但我不知道是否使用LONGTEXT或BLOB字段是矯枉過正。我應該爲我的列使用哪種數據類型? [MySQL]

也許有人可以給我一個提示或指向我的某種「最佳實踐」文章的方向這些類型的東西? :)

任何幫助表示讚賞

回答

0

您應該將GZip和Base64編碼爲HTML,然後將其存儲在文本列中。

+0

從GZip獲得什麼優勢?我會爲壓縮做還是還有其他一些我缺少的優點? – Gazillion 2009-11-26 19:18:10

+0

我會說壓縮是一個巨大的優勢。你可以將你的數據庫減少到一半的Web服務器傳輸時間(可能會誇大,但速度會提高)。此外,隨着時間的推移,您將需要更少的HTML存儲空間。 – ChaosPandion 2009-11-26 20:13:20

0

使用LONGTEXT所以你可以搜索一下。

+0

如果需要搜索,這將是最好的選擇。 – 2009-11-26 19:07:45

+0

誰將通過一個討厭的HTML塊搜索? – ChaosPandion 2009-11-26 19:10:12

+0

從什麼時候MySQL要求字段被LONGTEXT搜索? – William 2009-11-26 19:14:10

2

我建議您閱讀http://dev.mysql.com/doc/refman/5.0/en/string-type-overview.html,這樣您就知道每個字段的大小限制。之後,如果您應該允許更多,則可以根據您對應用程序的理解來選擇。

文本 具有65,535(216 - 1)的最大長度文本列字符

媒介文字 與16777215(224 - 1)的最大長度文本列的字符。

長文本 最大長度爲4,294,967,295或4GB(232 - 1)個字符的TEXT列。

我認爲你應該設置某種限制。例如,可能需要查看其他軟件的功能(如Word Press)。

至於ChaosPandion:GZip是二進制的,如果你打算這樣做,他應該使用BLOB來代替。

+0

我更新了我對你評論的回答。 – ChaosPandion 2009-11-26 19:08:15

+0

還要記住,文本列(如varchar列)具有可變長度。這意味着它只會佔用字段中包含的空間量(與CHAR不同)。它使用的唯一空間是一個2字節的前綴,以便數據庫知道字段的總大小。 – William 2009-11-26 19:11:58

相關問題