10
這是一個跟進我剛纔的問題:Blob and Storage RequirementMYSQL TINYBLOB VS LONGBLOB
我沒有使用SHOW TABLE STATUS
一些測試,並且發現了實際使用的總磁盤空間只取決於實際的文件上傳到大小數據庫,而不是該列的類型(例如TINYBLOB或LONGBLOG)。
所以,如果情況並非如此,那麼當我們選擇一個與另一個BLOB類型相比時會有什麼不同呢?
這是一個跟進我剛纔的問題:Blob and Storage RequirementMYSQL TINYBLOB VS LONGBLOB
我沒有使用SHOW TABLE STATUS
一些測試,並且發現了實際使用的總磁盤空間只取決於實際的文件上傳到大小數據庫,而不是該列的類型(例如TINYBLOB或LONGBLOG)。
所以,如果情況並非如此,那麼當我們選擇一個與另一個BLOB類型相比時會有什麼不同呢?
blob字段的每個大小都保留額外的字節來保存大小信息。 longblob使用4 + n字節的存儲空間,其中n是要存儲的blob的實際大小。如果你只存儲(比如說)10個字節的blob數據,那麼你最多可以使用14個字節的空間。
通過比較,tinyblob使用1 + n個字節,所以您的10個字節將佔用11個字節的空間,節省3個字節。
處理只有幾條記錄時,3個字節並不多,但隨着數據庫記錄數量的增加,每保存一個字節都是一件好事。
正是我想知道的。接受(實際上,我將不得不等待8分鐘)。 – jombie
這個答案的快速補充:保存的3個字節不僅僅是節省磁盤空間。它也會影響內存,緩存等內容的多少,所以它也會對性能產生影響。 –
@MarcB,你的答案是指InnoDB引擎還是MyISAM引擎?另外,你有來源/引文嗎? – Pacerier