MySQL中的varchar

varchar

mysql中的varchar类似于Orcale中的nvarchar,用于记录字符数目,而不是字节数量

varchar(n)表示可以存储n个字符,无关编码,但是n的最大值和编码有关
各种类型字段存储大小,其中vcharBLOB以及TEXT相同

1
2
3
4
TINYBLOB, TINYTEXT       L + 1 bytes, where L < 2^8    (255 Bytes)
BLOB, TEXT L + 2 bytes, where L < 2^16 (64 Kilobytes)
MEDIUMBLOB, MEDIUMTEXT L + 3 bytes, where L < 2^24 (16 Megabytes)
LONGBLOB, LONGTEXT L + 4 bytes, where L < 2^32 (4 Gigabytes)

同时满足一下规则:

  1. MySQL对于变长类型的字段会有1-2个字节来保存字符长度。
  2. 当字符数小于等于255时,MySQL只用1个字节来记录,因为2的8次方减1只能存到255。
  3. 当字符数多余255时,就得用2个字节来存长度了。

参考:

1.MySQL 数据库 varchar 到底可以存多少个汉字,多少个英文呢?我们来搞搞清楚