blob(binary large object)是用來儲存二進位製大資料型別的。根據儲存長度的不同,text型別和blob型別都可細分為4種型別:
tinyblob
最大長度為255(2^8–1)
位元組的blob列。
tinytext
最大長度為255(2^8–1)
字元的text列。
blob[(m)]
最大長度為65,535(2^16–1)
位元組的blob列。
可以給出該型別的可選長度m。如果給出,則mysql將列建立為最小的但足以容納m位元組長的值的blob型別。
text[(m)]
最大長度為65,535(2^16–1)
字元的text列。
可以給出可選長度m。則mysql將列建立為最小的但足以容納m字元長的值的text型別。
mediumblob
最大長度為16,777,215(2^24–1)
位元組的blob列。
mediumtext
最大長度為16,777,215(2^24–1)
字元的text列。
longblob
最大長度為4,294,967,295或4gb(2^32–1)
位元組的blob列。
longblob列的最大有效(允許的)長度取決於客戶端/伺服器協議中配置最大包大小和可用的記憶體。
longtext
最大長度為4,294,967,295或4gb(2^32–1)
字元的text列。
longtext列的最大有效(允許的)長度取決於客戶端/伺服器協議中配置最大包大小和可用的記憶體。
在大多數情況下,可以將blob型別的列視為足夠大的varbinary型別的列。同樣,也可以將text型別的列視為足夠大的varchar型別的列。然而,blob和text在以下幾個方面又不同於varbinary和varchar:
在blob和text型別的列上建立索引時,必須制定索引字首的長度。而varchar和varbinary的字首長度是可選的。
blob和text型別的列不能有預設值。
在排序時只使用列的前max_sort_length個位元組。
max_sort_length預設值為1024,該引數是動態引數,任何客戶端都可以在mysql資料庫執行時更改該引數的值,例如:
mysql> set global max_sort_length=2048;
query ok, 0 rows affected (0.00 sec)
mysql> select @@global.max_sort_length\g;
*************************** 1. row ***************************
@@global.max_sort_length: 2048
1 row in set (0.00 sec)
mysql> set max_sort_length=1536;
query ok, 0 rows affected (0.00 sec)
mysql> select @@max_sort_length\g;
*************************** 1. row ***************************
@@max_sort_length: 1536
1 row in set (0.00 sec)
在資料庫中,最小的儲存單元是頁(也可以稱為塊)。為了有效儲存列型別為blob或text的大資料型別,一般將列的值存放在行溢位頁,而資料頁儲存的行資料只包含blob或text型別資料列前一部分資料。
圖2-2顯示了innodb儲存引擎對於blob型別列的儲存方式,資料頁由許多的行資料組成,每行資料由列組成,
對於列型別為blob的資料,innodb儲存引擎只儲存前20位元組,而該列的完整資料則存放在blob的行溢位頁中。在這種方式下,資料頁中能存放大量的行資料,從而
提高了資料的查詢效率。
此外,在有些儲存引擎內部,比如innodb儲存引擎,會將大varchar型別字串(如varchar(65530))自動轉化為text或blob型別,這在筆者的另一本書《mysql技術內幕:innodb儲存引擎》中已經有了非常詳細的介紹,這裡不再贅述。
blob資料型別 mysql資料型別
mysql資料型別,資料型別介紹 資料型別設定 列屬性 資料型別的字符集用法 選擇適當的資料型別2 資料型別介紹 四種主要類別 數值型別 字元型別 時間型別 二進位制型別 資料型別的 abc 要素 brief 簡潔 complete 完整 例 1 列宣告 create table people id...
mysql資料型別 TEXT和Blob
text是 以文字方式儲存的,如果儲存英文的話區分大小寫 blob是以二進位制方式儲存的,不區分大小寫。blob儲存的資料只能整體讀出 有4種text型別 tinytext text mediumtext和longtext。這些對應4種blob型別,有相同的最大長度和儲存需求。blob 列被視為二進...
定義blob型別 MySQL 資料型別
mysql 支援的資料型別很多,選用正確的資料型別至關重要。下面介紹常用的資料型別以及相應的優缺點。以上資料型別有可選的unsigned 屬性,表示不允許出現負值,但可以使上限提高一倍.例如 smallint unsigned 可儲存範圍為 0 65535 而 smallint 為 32768 32...