2011-09-14 32 views
12

我想了解mysql的數據類型,但我沒有得到(Var-)二進制數據字段和BLOB字段之間的區別。這些類型之間有什麼區別?MYSQL:區別二進制和Blob

回答

13

BLOB's可以像你想要的那麼大。

而且,閱讀MySQL手冊在線:

BLOB和TEXT從VARBINARY和VARCHAR的區別在於以下幾個方面:

  • 沒有尾隨空間取消對BLOB和TEXT列當 值被存儲或檢索。在MySQL 5.0.3之前,這與 VARBINARY和VARCHAR不同,當存儲 值時,將刪除尾隨空格。

  • 比較時,TEXT空間擴展爲適合比較對象, 完全像CHAR和VARCHAR。

  • 對於BLOB和TEXT列上的索引,必須指定索引前綴 的長度。對於CHAR和VARCHAR,前綴長度是可選的。請參見部分 7.5.1,「列索引」。

  • BLOB和TEXT列不能有DEFAULT值。

+0

只要小於2^32B(對於LONGBLOB),'就像你想要的一樣大'。 另外:* TEXT和* BLOB列不會與所有其他列一起存儲,因此訪問它們可能會慢一些,但從正面來看,它們不會計入最大64kB的行大小。 – Mchl

3

二進制和varbinary類型是二進制字符串,其實際值存儲在表中。實際值blob(和文本)類型存儲在數據庫中的其他位置,該表中放置該槽的256字節別名;因此blob可以是「任何」大小(最大)。

相關問題