2013-03-05 24 views
7

我正在設計一個數據庫來存儲文檔。其中一些文件的時鐘剛好超過64kb,而且沒有一個會大於128kb。看來,我唯一的辦法是將我的文本類型指定爲MEDIUMTEXT,其最大大小爲16MB。對我所做的事情來說,這看起來似乎有些過火,特別是因爲我每天要存儲大約100個文件。我想我的問題是我是否會遇到性能問題,因爲MEDIUMTEXT比TEXT大得多。我對MySQL內部知道的知之甚少,不知道磁盤或內存中是否有一些奇怪的分配問題會回來咬我。當然,我們可以用MongoDB這類現代的東西來完成所有的事情,但我無法得到一個結論。 :-(
萬一別人用這個在未來的拼殺,我想我會注意在MySQL和最大尺寸的文本類型以供參考。MySQL文本類型和使用更大的大小。它有效嗎?

TINYTEXT 256 bytes 
TEXT 65,535 bytes ~64kb 
MEDIUMTEXT 16,777,215 bytes ~16MB 
LONGTEXT 4,294,967,295 bytes ~4GB 

任何意見,任何人將不勝感激。 珍妮

回答

9

MySQL's documentation on storage requirements它看起來像你不必擔心使用較長的文本類型太多;

L代表在給定的字符串值的字節實際長度
...
例如,存儲MEDIUMTEXT值需要L個字節來存儲值加上三個字節來存儲值的長度。

換句話說,mediumtext不需要存儲每個值的完整最大長度,它只需要你想存儲的數據的實際長度+3字節。

+1

基本上,您可以將TEXT類型看作是指向磁盤上文件的「指針」。各種TEXT(MEDIUMTEXT,TINYTEXT等)被用作數據庫引擎的存儲策略。 – sleblanc 2013-03-05 15:41:23

+0

爲Joachim回答業力!我非常感謝這個答案! – 2013-03-05 15:42:28

相關問題