BLOB是一个二进制大对象,可以容纳可变数量的数据。有4种BLOB类型:TINYBLOB、BLOB、MEDIUMBLOB和LONGBLOB。它们只是可容纳值的最大长度不同。

A binary large object that can hold a variable amount of binary data. The sorting and comparison of the values for these objects is performed in case-sensitive manner.

TINYBLOB

A binary large object column with a maximum length of 255 (2^8 - 1) characters.

BLOB

A binary large object column with a maximum length of 65535 (2^16 - 1) characters.

MEDIUMBLOB

A binary large object column with a maximum length of 16777215 (2^24 - 1) characters.

LONGBLOB

A binary large object column with a maximum length of 4294967295 (2^32 - 1) characters.

有4种TEXT类型:TINYTEXT、TEXT、MEDIUMTEXT和LONGTEXT。这些对应4种BLOB类型,有相同的最大长度和存储需求。

参见11.5节,“列类型存储需求”。

BLOB 列被视为二进制字符串(字节字符串)。TEXT列被视为非二进制字符串(字符字符串)。BLOB列没有字符集,并且排序和比较基于列值字节的数值值。TEXT列有一个字符集,并且根据字符集的 校对规则对值进行排序和比较。

在TEXT或BLOB列的存储或检索过程中,不存在大小写转换。

当未运行在严格模式时,如果你为BLOB或TEXT列分配一个超过该列类型的最大长度的值值,值被截取以保证适合。如果截掉的字符不是空格,将会产生一条警告。使用严格SQL模式,会产生错误,并且值将被拒绝而不是截取并给出警告。参见5.3.2节,“SQL服务器模式”。

在大多数方面,可以将BLOB列视为能够足够大的VARBINARY列。同样,可以将TEXT列视为VARCHAR列。BLOB和TEXT在以下几个方面不同于VARBINARY和VARCHAR:

·         当保存或检索BLOB和TEXT列的值时不删除尾部空格。(这与VARBINARY和VARCHAR列相同)。

请注意比较时将用空格对TEXT进行扩充以适合比较的对象,正如CHAR和VARCHAR。

·         对于BLOB和TEXT列的索引,必须指定索引前缀的长度。对于CHAR和VARCHAR,前缀长度是可选的。参见7.4.3节,“列索引”。

·         BLOB和TEXT列不能有 默认值。

LONG和LONG VARCHAR对应MEDIUMTEXT数据类型。这是为了保证兼容性。如果TEXT列类型使用BINARY属性,将为列分配列字符集的二元 校对规则。

MySQL连接程序/ODBC将BLOB值定义为LONGVARBINARY,将TEXT值定义为LONGVARCHAR。

由于BLOB和TEXT值可能会非常长,使用它们时可能遇到一些约束:

·         当排序时只使用该列的前max_sort_length个字节。max_sort_length的 默认值是1024;该值可以在启动mysqld服务器时使用--max_sort_length选项进行更改。参见5.3.3节,“服务器系统变量”。

运行时增加max_sort_length的值可以在排序或组合时使更多的字节有意义。任何客户端可以更改其会话max_sort_length变量的值:

mysql> SET max_sort_length = 2000;
mysql> SELECT id, comment FROM tbl_name
    -> ORDER BY comment;

当你想要使超过max_sort_length的字节有意义,对含长值的BLOB或TEXT列使用GROUP BY或ORDER BY的另一种方式是将列值转换为固定长度的对象。标准方法是使用SUBSTRING函数。例如,下面的语句对comment列的2000个字节进行排序:

mysql> SELECT id, SUBSTRING(comment,1,2000) FROM tbl_name
    -> ORDER BY SUBSTRING(comment,1,2000);

·         BLOB或TEXT对象的最大大小由其类型确定,但在客户端和服务器之间实际可以传递的最大值由可用内存数量和通信缓存区大小确定。你可以通过更改max_allowed_packet变量的值更改消息缓存区的大小,但必须同时修改服务器和客户端程序。例如,可以使用 mysqlmysqldump来更改客户端的max_allowed_packet值。参见7.5.2节,“调节服务器参数”、8.3节,“mysql:MySQL命令行工具”和8.8节,“mysqldump:数据库备份程序”。

每个BLOB或TEXT值分别由内部分配的对象表示。这与其它列类型形成对比,后者是当打开表时为每1列分配存储引擎。

转自:http://doc.mysql.cn/mysql5/refman-5.1-zh.html-chapter/column-types.html#numeric-types

转载于:https://www.cnblogs.com/bigbigtree/p/3244640.html

Mysql BLOB和TEXT类型相关推荐

  1. MySQL中的Text类型

    文章目录 1 MySQL中的Text类型 1 MySQL中的Text类型 TEXT类型是一种特殊的字符串类型,包括TINYTEXT.TEXT.MEDIUMTEXT和LONGTEXT,其长度和存储空间的 ...

  2. MySQL 4种text类型的最大长度

    MySQL 4种text类型的最大长度如下 TINYTEXT 256 bytes   TEXT 65,535 bytes ~64kb MEDIUMTEXT 16,777,215 bytes ~16MB ...

  3. mysql中的text 类型的使用

    mysql中的text对应oracle中的clob 又分为TINYTEXT, TEXT, MEDIUMTEXT,LONGTEXT, 都是表示数据长度类型的一种. 语法:[ UNSIGNED ] med ...

  4. mysql blob 比较_MySQL下,text 、blob的比较

    MySQL存在text和blob: (1)相同 在TEXT或BLOB列的存储或检索过程中,不存在大小写转换,当未运行在严格模式时,如果你为BLOB或TEXT列分配一个超过该列类型的最大长度的值值,值被 ...

  5. MySQL数据类型之BLOB与TEXT及其最大存储限制

    https://blog.csdn.net/q3dxdx/article/details/51014357 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.n ...

  6. mysql text类型效率_mysql使用笔记:vachar,char,text比较

    今天新开始的项目在做数据库设计,发现自己对MySql的varchar类型还不熟悉,故又上网收集资料整理如下. 1.varchar类型的变化 MySQL 数据库的varchar类型在4.1以下的版本中的 ...

  7. MySQL text类型的最大长度

     MySQL text类型的最大长度             MySQL 3种text类型的最大长度如下: TEXT 65,535 bytes ~64kb MEDIUMTEXT 16,777,21 ...

  8. mysql 字段length_【MySQL】使用Length和Cast函数计算TEXT类型字段的长度

    背景: 前段时间,业务需要,为了快速让解析的Excel入库,所以把不是很确定的字段全部设置成了TEXT. 今天需要进行表结构优化,把字段长度控制在合适的范围,并尽量不使用TEXT类型. -- 计算长度 ...

  9. MySql中的varchar类型

    1.varchar类型的变化 MySQL 数据库的varchar类型在4.1以下的版本中的最大长度限制为255,其数据范围可以是0~255或1~255(根据不同版本数据库来定).在 MySQL5.0以 ...

  10. mysql 人名用什么类型_如何选择合适的MySQL数据类型

    一.MySQL数据类型选择原则 更小的通常更好:一般情况下选择可以正确存储数据的最小数据类型.越小的数据类型通常更快,占用磁盘,内存和CPU缓存更小. 简单就好:简单的数据类型的操作通常需要更少的CP ...

最新文章

  1. CSS之布局(盒子模型—边框)
  2. 又一位巨星因“新冠”陨落,07年图灵奖得主Edmund Clarke,享年75岁
  3. Java提高班(一)Thread详解
  4. 本科计算机科学与技术专业物理,中国工程物理研究院职工工学院计算机科学与技术(本科)专业介绍...
  5. JavaWeb程序设计任务教程(黑马程序员 传智播客)测一测 编写一个Servlet,实现统计网站被访问次数的功能
  6. PCL:全程详解 VS2010+PCL配置
  7. 中石油在意大利加油站0.5分/升,会不会赔死啊?
  8. TSubclassOf
  9. 回溯算法与八皇后问题
  10. 汇编语言及应用——程序设计
  11. 幅相频率特性曲线的绘制(1)
  12. 用户界面之工具栏详解-AutoRunner自动化测试工具
  13. Unable to obtain current patch information due to error: 20001, ORA-20001: Latest xml inventory is n
  14. linux过滤目录文件,SCP使用技巧-递归排除文件
  15. Linux tmpfs是什么
  16. 将 zlib 引入到C++项目中 历程
  17. 什么是编译程序(含翻译程序、解释程序和中间代码的定义介绍)
  18. apachezt和mysql关闭_Apache访问控制
  19. 【数据库实验】实验二 学习SQL 语句的数据操纵与视图
  20. 机器人素质教育,是时候普及一下了

热门文章

  1. EnvironmentLocationNotFound: Not a conda environment:
  2. ResNet50及其Keras实现
  3. python四种方法实现去除列表中的重复元素
  4. equal java用法_equal,和等号的用法..
  5. C++ std :: fill()函数
  6. C++ std::pair<,> 是什么怎么用
  7. kubernetes视频教程笔记 (3)-Pod及其网络通讯方式
  8. thinkphp5 insertAll 插入的数据列不对 对应关系不对
  9. Ubuntu Thinkphp page not found
  10. excel转word后表格超出页面_妙招!Word和Execl“联姻”实现数据高效处理!