varchar 和 text区别

varchar在mysql5.0.3之前可存0-255个字节的内容,mysql5.0.3之后可以存65535个字节,注意是字节不是字符,而text可以存65535个字符,字节与字符是不同的,mysql中不同的字符集会导致存储的字节数不同,如varchar若用utf-8的字符集,则汉字是3个字节,用latin或gbk的则是2个字节。
 
因此在utf-8字符集下,建表时varchar(65535)是错的,最多只有21845(65545/3),即建表时最多只可以varchar(21845),如果是gbk,则最大的是varchar(32767) 即65535/2。
 
所以varchar(1)表示可以存储一个汉字或一个ascii字符,实际上占用的存储空间是3个字节。
 

 

你可能感兴趣的:(varchar)