我的問題是tinyblob & tinytext真的有什麼區別嗎?varchar(255)v tinyblob v tinytext
買我真正的問題是什麼原因,如果有的話,我會選擇varchar(255)over tinyblob或tinytext?
我的問題是tinyblob & tinytext真的有什麼區別嗎?varchar(255)v tinyblob v tinytext
買我真正的問題是什麼原因,如果有的話,我會選擇varchar(255)over tinyblob或tinytext?
主要storage requirements和存儲器處理/速度:
在下面的表,
M
表示字符聲明的列長度爲非二進制串類型和字節二進制串類型。L
表示給定字符串值的實際字節長度。VARCHAR(
M
),VARBINARY(M
):
L
+ 1 字節,如果列中的值需要0 - 255 個字節,如果
L
+ 2個字節的值可以 需要多於255個字節TINYBLOB,TINYTEXT:
L
+ 1個字節,其中L
此外,請參閱this交:
用於在使用中的每個表中,MySQL分配 存儲器4點的行。對於這些行中的每一個,使用CHAR(X)/ VARCHAR(X)列將向上提取X個字符 。
甲TEXT/BLOB另一方面是由一個8個字節的指針+一個 1-4字節長度(取決於 BLOB/TEXT類型)表示 。在使用時動態分配BLOB/TEXT 。這將使 使用較少的內存,但在某些情況下,它可能會碎片您的內存中長 運行。
編輯:順便說一句,斑點存儲二進制數據和文本存儲的ASCII,多數民衆贊成TINYBLOB和TINYTEXT之間的唯一區別。
VARCHAR(255)比tinyblob或tinytext更具有SQL標準。因此,您的腳本和應用程序可以跨數據庫供應商更便攜。
不能CHARACTER SET適用於TINYTEXT,但你可以爲varchar(255)
這不是真的,你可以申請字符集都VARCHAR和TINYTEXT(在MySQL的),而不是TINYBLOB。 – 2010-02-14 07:54:56