MySQL中TEXT與BLOB欄位型別的區別
在MySQL中有兩個欄位型別容易讓人感覺混淆,那就是TEXT與BLOB,特別是自己寫部落格程式的博主不知道改為自己的部落格正文欄位選擇TEXT還是BLOB型別。
下面給出幾點區別:
一、主要差別
TEXT與BLOB的主要差別就是BLOB儲存二進位制資料,TEXT儲存字元資料。目前幾乎所有部落格內容裡的圖片都不是以二進位制儲存在資料庫的,而是把圖片上傳到伺服器然後正文裡使用標籤引用,這樣的部落格就可以使用TEXT型別。而BLOB就可以把圖片換算成二進位制儲存到資料庫中。
二、型別區別
BLOB有4種型別:TINYBLOB、BLOB、MEDIUMBLOB和LONGBLOB。它們只是可容納值的最大長度不同。
TEXT也有4種型別:TINYTEXT、TEXT、MEDIUMTEXT和LONGTEXT。這些型別同BLOB型別一樣,有相同的最大長度和儲存需求。
三、字符集
BLOB列沒有字符集,並且排序和比較基於列值位元組的數值值。TEXT列有一個字符集,並且根據字符集的校對規則對值進行排序和比較
四、大小寫
在TEXT或BLOB列的儲存或檢索過程中,不存在大小寫轉換,都一樣!
五、嚴格模式
執行在非嚴格模式時,如果你為BLOB或TEXT列分配一個超過該列型別的最大長度的值值,值被擷取以保證適合。如果截掉的字元不是空格,將會產生一條警告。使用嚴格SQL模式,會產生錯誤,並且值將被拒絕而不是擷取並給出警告。
六、其它
當儲存或檢索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變數的值更改訊息快取區的大小,但必須同時修改伺服器和客戶端程式。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/964/viewspace-2810807/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Mysql BLOB、BLOB與TEXT區別及效能影響、將BLOB型別轉換成VARCHAR型別MySql型別
- PHP 操作 mysql blob 資料型別的欄位PHPMySql資料型別
- MySQL 中 blob 和 text 資料型別詳解MySql資料型別
- 關於mysql中欄位定義的型別int、tinyint區別MySql型別
- MySQL欄位型別最全解析MySql型別
- mysql表操作(alter)/mysql欄位型別MySql型別
- MySQL欄位新增註釋,但不改變欄位的型別MySql型別
- mysql索引型別Normal,Unique,Full Text區別以及索引方法Btree,Hash的區別MySql索引型別ORM
- JSON欄位型別在ORM中的使用JSON型別ORM
- MySQL:count(*) count(欄位) 實現上區別MySql
- 查詢mysql某張表中的所有資料(欄位)型別MySql型別
- MongoDB更改欄位型別MongoDB型別
- MYSQL SET型別欄位的SQL操作知識介紹MySql型別
- 值型別與引用型別的區別型別
- IL角度理解C#中欄位,屬性與方法的區別C#
- ES Mapping ,1 欄位型別APP型別
- MySQL VARCHAR型別欄位到底可以定義多長MySql型別
- Java資料型別與資料庫欄位型別對應關係Java資料型別資料庫
- sql語句修改欄位型別和增加欄位SQL型別
- [提問交流]建立模型,新增屬性,欄位型別如何設定2位小數的欄位型別模型型別
- select * 和 select 所有欄位的區別
- 【mongo】mongo 欄位型別互轉Go型別
- text/html和text/plain的區別HTMLAI
- 在xpath中text()和string(.)的區別
- Lazarus中對mysql資料庫Blob型別進行讀寫例子MySql資料庫型別
- MySQL text型別不允許有預設值MySql型別
- Oracle 修改欄位型別和長度Oracle型別
- 關於mysql設定varchar 欄位的預設值''和null的區別,以及varchar和char的區別MySqlNull
- Postgresql與MySQL的區別MySql
- mysql與Oracle的區別MySqlOracle
- Mysql與mongodb的區別MySqlMongoDB
- mysql 字串型別的數值欄位按照數值的大小進行排序MySql字串型別排序
- 資料庫中欄位資料型別以及約束資料庫資料型別
- SAP WM中階儲存型別裡的Full stk rmvl 欄位和Return Storage type欄位型別
- 多型關聯自定義的型別欄位的處理多型型別
- 地理位置經緯度在Mysql中用什麼欄位型別MySql型別
- Mysql varchar型別欄位為什麼經常定義為255MySql型別
- MySQL把字串欄位轉換為日期型別進行比較MySql字串型別