Mysql 中的Text字段的范围?与使用方法!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mysql 中的Text字段的范围?与使用方法!相关的知识,希望对你有一定的参考价值。

参考技术A

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:变长,无字符集的二进制大对象,大小写敏感

MySQL使用Length和Cast函数计算TEXT类型字段的长度

背景:

前段时间,业务需要,为了快速让解析的Excel入库,所以把不是很确定的字段全部设置成了TEXT。

今天需要进行表结构优化,把字段长度控制在合适的范围,并尽量不使用TEXT类型。

 

-- 计算长度
select LENGTH(CAST(fileName AS CHAR)) from files;

select MAX(LENGTH(CAST(fileName AS CHAR))) from files;

select LENGTH(CAST(fileName AS CHAR)) as le from files HAVING le > 20;

-- 尝试转为VARCHAR类型进行计算,但是报错,也许是因为VARCHAR是变长的,在一个变长的类型上进行长度计算是不合理的。

-- 这点不是很清楚,等以后学艺更精的时候再解释吧。

select LENGTH(CAST(fileName AS VARCHAR)) from files;

[SQL]select LENGTH(CAST(fileName AS VARCHAR)) from files;
[Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘VARCHAR)) from files‘ at line 1

 



以上是关于Mysql 中的Text字段的范围?与使用方法!的主要内容,如果未能解决你的问题,请参考以下文章

如何将两个不同数据库(MySQL、SQL SERVER)之间的 TEXT 字段与哈希值进行比较?

MySQL使用Length和Cast函数计算TEXT类型字段的长度

Mysql优化

mysql中tinytext与text的区别是啥?

使用 Jquery Datepicker 进行 PHP MYSQL 日期范围搜索

mysql 字段类型详解