區別:1、MySQL中的BLOB用於保存二進位數據,而TEXT用於保存字元資料;2、BLOB列沒有字元集,並且排序和比較基於列值位元組的數值值,而TEXT列有一個字元集,並且根據字元集的校對規則對值進行排序和比較。
本教學操作環境:windows7系統、mysql8版本、Dell G3電腦。
在MySQL中有兩個欄位類型容易讓人感覺混淆,那就是TEXT與BLOB,下面我們就來看看兩種的差異。
blob和text的區別
#1、主要差異
TEXT與BLOB的主要差別就是BLOB保存二進位數據,TEXT保存字元資料。目前幾乎所有部落格內容裡的圖片都不是以二進位儲存在資料庫的,而是把圖片上傳到伺服器然後正文裡使用標籤引用,這樣的部落格就可以使用TEXT類型。而BLOB就可以把圖片換算成二進位儲存到資料庫中。
2、類型區別
BLOB有4種類型:TINYBLOB、BLOB、MEDIUMBLOB和LONGBLOB。它們只是可容納值的最大長度不同。
TEXT也有4種:TINYTEXT、TEXT、MEDIUMTEXT和LONGTEXT。這些類型同BLOB類型一樣,有相同的最大長度和儲存需求。
3、字元集
BLOB列沒有字元集,並且排序並比較基於列值位元組的數值值。 TEXT列有一個字元集,並且根據字元集的校對規則對值進行排序和比較
#4、大小寫
在TEXT或BLOB列的儲存或檢索過程中,不存在大小寫轉換,都一樣!
5、嚴格模式
運行在非嚴格模式時,如果你為BLOB或TEXT列分配一個超過該列類型的最大長度的值值,值被截取以保證適合。如果截掉的字元不是空格,將會產生一則警告。使用嚴格SQL模式,會產生錯誤,並且值將被拒絕而不是截取並給予警告。
6、其它
當儲存或擷取BLOB和TEXT列的值時不刪除尾部空格。
對於BLOB和TEXT列的索引,必須指定索引前綴的長度。
BLOB和TEXT欄位不能有預設值。
當排序時只使用該列的前max_sort_length個位元組。 max_sort_length的 預設值是1024。
當你想要讓超過max_sort_length的位元組有意義,對含長值的BLOB或TEXT列使用GROUP BY或ORDER BY的另一種方式是將列值轉換為固定長度的物件。標準方法是使用SUBSTRING函數。
BLOB或TEXT物件的最大大小由其類型決定,但在客戶端和伺服器之間實際可以傳遞的最大值由可用記憶體數量和通訊快取區大小決定。你可以透過更改max_allowed_packet變數的值來更改訊息快取區的大小,但必須同時修改伺服器和客戶端程式。
【相關推薦:mysql影片教學】
#以上是mysql中blob和text有什麼差別的詳細內容。更多資訊請關注PHP中文網其他相關文章!