MySQL中的Text类型
TEXT类型是一种特殊的字符串类型,包括TINYTEXT、TEXT、MEDIUMTEXT和LONGTEXT,其长度和存储空间的对比下表所示:
各种TEXT类型的区别在于允许的长度和存储空间不同。因此,在这几种TEXT类型中,根据需求选取既能满足需要又节省空间的类型即可。
特别注意:
以上各类型无须指定长度!
允许的长度是指实际存储的字节数,而不是实际的字符个数,比如假设一个中文字符占两个字节,那么TEXT 类型可存储 65535/2 = 32767 个中文字符,而varchar(100)可存储100个中文字符,实际占200个字节,但varchar(65535) 并不能存储65535个中文字符,因为已超出表达范围。
实战建议:
char长度固定, 即每条数据占用等长字节空间;适合用在身份证号码、手机号码等定。超过255字节的只能用varchar或者text。
varchar可变长度,可以设置最大长度;适合用在长度可变的属性。
text不设置长度, 当不知道属性的最大长度时,适合用text, 能用varchar的地方不用text。
如果都可以选择,按照查询速度: char最快, varchar次之,text最慢。
mysql> use test; #选择数据库test
mysql> create table text_example(e_text tinytext, v_char varchar(255)); #创建数据库表,e_text 可存储255个字节,v_char可存储255个字符
mysql> insert into char_example values(90个中文字符,90个中文字符); #插入失败,utf8mb4 用3个字节表示一个中文汉字,会超出tinytext 保存范围
mysql> insert into char_example values(80个中文字符,100个中文字符); #插入成功
原文链接:https://blog.csdn.net/yz18931904/article/details/122318902