在mysql中,有一项规定:mysql的记录长度(record == 行 row)总长度不能超过65535个字节。
Varchar能够存储的理论值为65535个字符,而字符在不同的字符集下可能占用多个字节。因此,mysql中varchar实际存储长度大大缩小。
1、创建表:证明varchar在mysql中能够达到的理论值(utf8和GBK)
Varchar特点:除了存储的数据本身要占用空间,还需要额外的空间来保存记录长度。
mysql> create table mychar(
-> name varchar(65535)
-> )charset=utf8;
Query OK, 0 rows affected, 1 warning (0.22 sec)
mysql> desc mychar;
+-------+------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+------------+------+-----+---------+-------+
| name | mediumtext | YES | | NULL | |
+-------+------------+------+-----+---------+-------+
1 row in set (0.03 sec)
mysql> alter table mychar modify name varchar(21844);
Query OK, 0 rows affected (0.12 sec)
Records: 0 D