2008-09-27 84 views

回答

16

主要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之間的唯一區別。

5

VARCHAR(255)比tinyblob或tinytext更具有SQL標準。因此,您的腳本和應用程序可以跨數據庫供應商更便攜。

-8

不能CHARACTER SET適用於TINYTEXT,但你可以爲varchar(255)

+2

這不是真的,你可以申請字符集都VARCHAR和TINYTEXT(在MySQL的),而不是TINYBLOB。 – 2010-02-14 07:54:56

相關問題