Mysql BLOB、BLOB與TEXT區別及效能影響、將BLOB型別轉換成VARCHAR型別

OldBoy~發表於2018-12-11

在排查公司專案業務邏輯的時候,見到了陌生的字眼,如下圖

順著關鍵字BLOB搜尋,原來是Mysql儲存的一種型別,從很多文章下了解到如下資訊

瞭解

MySQL中,BLOB欄位用於儲存二進位制資料,是一個可以儲存大量資料的容器,它能容納不同大小的資料。

MySQL的四種BLOB型別

  1. 型別                     大小(單位:位元組)
  2. TinyBlob                   最大 255
  3. Blob                         最大 65K
  4. MediumBlob            最大 16M
  5. LongBlob                 最大 4G

BLOB與TEXT的區別

一般在儲存少量字串的時候,我們會選擇CHAR或者VARCHAR,而在儲存較大文字時,通常會選擇使用TEXT或者BLOB。二者之間的主要差別是BLOB能用來儲存二進位制資料,比如照片;而TEXT只能儲存字元資料,比如一遍文章或日記。TEXT和BLOB中又分別包括TEXT,MEDIUMTEXT,LONGTEXT和BLOB,MEDIUMBLOB,LONGBLOB三種不同的型別,他們之間的主要區別是儲存文字長度不用和儲存位元組不用,使用者應該根據實際情況選擇能夠滿足需求的最小儲存型別。

BLOB和TEXT值會引起一些效能問題,特別是執行了大量的刪除操作時。
刪除操作會在資料庫表中留下很大的“空洞”,以後要填入這些“空洞”的記錄在插入的效能上會有影響。為了提高效能,建議定期使用OPTIMEIZE TABLE功能對這類表進行碎片整理,避免因為“空洞”導致效能問題。 

詳細說明:https://blog.csdn.net/weixin_36910300/article/details/79104536

效能影響:https://blog.csdn.net/zhao_6666/article/details/79132285

將BLOB轉化為VARCHAR

select CAST(content AS CHAR(10000) CHARACTER SET utf8) from t_bonus_code_log

https://blog.csdn.net/qjc_501165091/article/details/51226018   原生的寫入與讀取

相關文章