MySQL - text字段
Posted MinggeQingchun
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL - text字段相关的知识,希望对你有一定的参考价值。
一、text属性
mysql下的TEXT属性一种特殊的字符串,存储单位为字节,有四种类型
TINYTEXT、TEXT、MEDIUMTEXT 和 LONGTEXT
不同的是可以存储的字符串的长度以及空间占用大小
TINYTEXT最大存放长度为255个字符的字符串
TEXT最大存放长度为65535个字符的字符串
MEDIUMTEXT最大存放长度为16772150个字符的字符串(int最大值16M)
LONGTEXT最大存放长度为4294967295个字符的字符串(long最大值4G)
TEXT
类型被用来存储非二进制字符集,二进制字符集使用blob类型的字段来存储。对于text列,插入时MySQL不会对它进行填充,并且select时不会删除任何末尾的字节
使用时不需要指定长度,因为已经有默认最大可存储字节数,长度可变
如果要存储字符,一个中文字符可能占用3个字节,存储选择哪种类型需要根据实际选择
允许的长度是指实际存健的字节数,而不是实际的完符介数。如假设一个中文字符占两个字节,那TEXT类型可存65535/2=32767个中文字符,而varchar(100)可存储100个中文字符,实际占200个字节,但varchar(65535)并不能存储65535个中文字符,因为巳超出表达范围。
以上各类型无须指定长度
#创建数据库表,e_text可存储255个字节,v_char可存储255个字符
>mysql create table text_example(e_text tinytext, v_char varchar(255));
#插入失败,utf8mb4用3个字节表示一个中文汉字,会超出tinytext保存范围
>mysql insert into char_example values(90个中文字符,90个中文字符);
#插入成功
>mysql> insert into char_example values(80个中文字符,100个中文字符);
对比
1、char长度固定,即每条数据占用等长字节空间,适合用在身份证号码、手机号码等。超过255字节只能用varchar或者text
2、varchar可变长度,可以设置最大长度,适合已知最大可用长度的情况下,用在长度可变的属性。varchar可变长度,可以设置最大长度,适合用在长度可变的属性
3、text不设置长度,当不知道属性的最大长度时,适合用text,能用varchar的地方不用text
按照查询速度:char > varchar > text最慢
以上是关于MySQL - text字段的主要内容,如果未能解决你的问题,请参考以下文章
jQuery:如何专注于输入文本字段,使光标位于文本的末尾?
mysql的text字段长度 mysql数据库中text字段长度不够的问题