因为mysql 是行存储模式,所以会把整行读取出来。text 储存了大量的数据。读取时,占了大量的io。所以会十分的慢。如果数据量有可能达到50万以上,一般此字段可以单独放到一个表里边。
应为text相较char、varchar查询速度更慢,
具体可以看看三者的差别
1、char,存定长,速度快,存在空间浪费的可能,会处理尾部空格,上限255。
2、varchar,存变长,速度慢,不存在空间浪费,不处理尾部空格,上限65535,但是有存储长度实际65532最大可用。
3、text,存变长大数据,速度慢,不存在空间浪费,不处理尾部空格,上限65535,会用额外空间存放数据长度,顾可以全部使用65535。
来源:网页链接
mysql中text 最大长度为65,535(2的16次方–1)字符的TEXT列。
如果觉得text长度不够,可以选择:
1、MEDIUMTEXT最大长度为16,777,215
2、LONGTEXT最大长度为4,294,967,295
使用方法:
mysql中的text对应oracle中的clob,又分为TINYTEXT, TEXT, MEDIUMTEXT,LONGTEXT, 都是表示数据长度类型的一种。
语法:[ UNSIGNED ] mediutext
TINYTEXT: 256 bytes
TEXT: 65,535 bytes =>~64kb
MEDIUMTEXT: 16,777,215 bytes =>~16MB
扩展资料:text等字段需要慎重使用,多个text字段会报错,Row size too large 表示行的内容太多了。
修改方法:
1、首先查询下参数的值:
mysql>SELECT @@global.max_sort_length
2、然后去设置这个值:(数字根据需要自行填写)
mysql>SET GLOBAL max_sort_length=2048
当排序时只使用该列的前max_sort_length个字节。max_sort_length的 默认值是1024;该值可以在启动mysqld服务器时使用–max_sort_length选项进行更改。
text 和 char varchar blob这几种类型的区别:
char:定长,最大255个字符
varchar:变长,最大65535个字符(既是单列的限制,又是整行的限制)
text:变长,有字符集的大对象,并根据字符集进行排序和校验,大小写不敏感
blob:变长,无字符集的二进制大对象,大小写敏感
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)