6.2.3.2 BLOB 和 TEXT 类型
2015-06-03 14:19
169 查看
一个
列类型存储需求。
四个
如果将一个超过列类型最大长度的值赋给一个
在大多数方面,可以将一个
在 MySQL 3.23.2 和更新的版本中,可以在
当
因为
如果希望在一个
如果你不这样做,只有列值的前
一个
调节服务器参数。
注意,每个
一个
BLOB是一个可以保存一可变数量的数据的二进制大对象。四个
BLOB类型(
TINYBLOB、
BLOB、
MEDIUMBLOB和
LONGBLOB)之间的不同仅仅在于他们能保存值的最大长度不一致。查看章节 6.2.6
列类型存储需求。
四个
TEXT类型(
TINYTEXT、
TEXT、
MEDIUMTEXT和
LONGTEXT)对应与四个
BLOB类型,并且有相同的最大长度和存储需求。在
BLOB和
TEXT类型之间的唯一差别就是,对
BLOB值是以字母大小写敏感的方式进行排序和比较的,而对
TEXT值以忽略字母大小写方式进行排序和比较。换句话说,
TEXT是一个忽略字母大小写的
BLOB。
如果将一个超过列类型最大长度的值赋给一个
BLOB或
TEXT列,该值将被截断以适应它。
在大多数方面,可以将一个
TEXT列看作是一个你所希望大
VARCHAR列。同样的,
BLOB列可以看作是一个
VARCHAR BINARY列。差别就在于:
在 MySQL 3.23.2 和更新的版本中,可以在
BLOB和
TEXT列上建立索引。而较老版本的 MySQL 是不支持的。
当
BLOBand
TEXT列值被存储时,尾部的空格不会被剪切,这与
VARCHAR列是不一样的。
BLOB和
TEXT列不可以有
DEFAULT值。
MyODBC以
LONGVARBINARY定义
BLOB值,以
LONGVARCHAR定义
TEXT值。
因为
BLOB和
TEXT值可以非常地长,在使用它们时可能会遇到某些限制:
如果希望在一个
BLOB或
TEXT列上使用
GROUP BY和
ORDER BY,必须将该列值转换为一个定长对象。这样做的标准做法是使用
SUBSTRING函数。例如:
mysql> SELECT comment FROM tbl_name,SUBSTRING(comment,20) AS substr -> ORDER BY substr;
如果你不这样做,只有列值的前
max_sort_length个字节用于排序。
max_sort_length缺省的值为 1024;在启动
mysqld服务时,可以使用
-O选项对它进行更改。可以在一个包含
BLOB或
TEXT值的表达式上进行分组,通过指定列的位置或使用一个别名:
mysql> SELECT id,SUBSTRING(blob_col,1,100) FROM tbl_name GROUP BY 2; mysql> SELECT id,SUBSTRING(blob_col,1,100) AS b FROM tbl_name GROUP BY b;
一个
BLOB或
TEXT对象的最大尺寸由其类型决定,但是在客户端和服务器之间实际所能传送的最大值,是由可用内存总数和通讯缓冲区的大小来决定的。你可以改变报文缓冲区的大小,但必须在服务器端与客户端同时这么做。查看章节 5.5.2
调节服务器参数。
注意,每个
BLOB或
TEXT值在内部由一个独立分配的对象表示。这与其它所有的列类型不一样,当表被打开时,它们被按每列分配一次存储。
相关文章推荐
- 细说javascript 中的 window.open() 参数设置
- (2)虚拟机下hadoop1.1.2集群环境搭建
- IOS 03 QQ登陆界面
- 双重校验的单例模式
- linux 下配置两个网卡桥接
- 继承ViewGroup实现Scroll滑动效果
- Algorithms—36.Valid Sudoku
- Android中shape的基本使用
- java基础(七)--- set
- python中的zip学习
- [.net 面向对象编程基础] (4) 基础中的基础——数据类型转换
- Aforge.net摄像头旋转代码
- HDU---1480-钥匙计数之二
- KafkaSpout之PartitionManager
- 第一节:创建自己的每一个场景
- [Asp.net 5] Logging-新日志系统目录
- jQuery学习笔记3--网页字体变大变小
- 使用gsoap进行soap开发
- 4.3-4
- pl/sql_4_游标(光标)