购买我真正的问题是什么原因,如果有的话,我会选择varchar(255)over tinyblob或tinytext?
解决方法
In the following table,
M
represents the declared column length in characters for nonbinary string types and bytes for binary string types.L
represents the actual length in bytes of a given string value.VARCHAR(
M
),VARBINARY(M
):
L
+ 1
bytes if column values require 0 – 255
bytes,
L
+ 2 bytes if values may
require more than 255 bytesTINYBLOB,TINYTEXT:
L
+ 1 bytes,whereL
< 28
另外,见this帖子:
For each table in use,MysqL allocates
memory for 4 rows. For each of these
rows CHAR(X)/VARCHAR(X) column takes
up the X characters.A TEXT/BLOB on the other hand is
represented by a 8 byte pointer + a
1-4 byte length (depending on the
BLOB/TEXT type). The BLOB/TEXT is
allocated dynamicly on use. This will
use less memory,but in some cases it
may fragment your memory in the long
run.
编辑:除此之外,blob存储二进制数据和文本存储ASCII,这是TINYBLOB和TINYTEXT之间的唯一区别.