mysql解析text_MySQL之text字段的深度解析

text类型一般分为 tinytext(255字节)、text(65535字节)、 mediumtext(int最大值16M),和longtext(long最大值4G)四种类型,它被用来存储非二进制字符集,而二进制字符集则使用blob类型的字段来存储。

从存储容量来看,text与varchar是相同的,所以在大多数情况下,我们可以把text视为varchar字段。但是,两者还是有一些差异的:

(1)text的最大限制也是64k个字节,但是实际是分开存储的,innodb默认只会存放前768字节在数据页中,而剩余的数据则会存储其他地方。而varchar/char等列是一起存储在表数据文件中,由此可见text数据类型实际上将会大幅度增加数据库表文件尺寸。

(2)varchar列在溢出的时候会自动转换为text类型。

(3)对text列进行排序的时候,决定顺序的字符个数是由参数max_sort_length来决定的。当text列的内容很多的时候,text列的内容会保留一个指针在记录中,这个指针指向了磁盘中的一块区域,当对这个表进行select * from table的时候,会从磁盘中读取text的值,影响查询的性能,而varchar不会存在这个问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值