一种斑点
是一个二进制大对象,可以保持可变数据量。四斑点
类型是Tinyblob.
那斑点
那博尔布
, 和Longblob.
。这些仅在它们可以保持的值的最大长度中不同。四文本
类型是TinyText.
那文本
那媒体下文字
, 和longtext.
。这些对应于四个斑点
类型并具有相同的最大长度和存储要求。看第11.7节“数据类型存储要求”。
斑点
值被视为二进制字符串(字节字符串)。他们有二进制
字符集和归类,以及比较和排序基于列值中字节的数值。文本
值被视为非线性字符串(字符串)。他们有一个字符集二进制
并且基于字符集的排序规则对值进行排序和比较。
如果未启用严格的SQL模式,则将值分配给a斑点
或者文本
超过列最大长度的列,该值被截断为适合,并生成警告。对于截断非空间字符,您可能会导致发生错误(而不是警告)并使用严格的SQL模式抑制该值的插入。看第5.1.10节“服务器SQL模式”。
从要插入的值截断多余的尾随空格文本
无论SQL模式如何,列始终会产生警告。
为了文本
和斑点
列,在插入件上没有填充,在选择时不会剥离字节。
如果一个文本
列是索引的,索引条目比较结束时是空秒。这意味着,如果索引需要唯一值,则仅在尾随空格的数量中不同的值发生重复密钥错误。例如,如果表包含'一种'
,试图存储'一种 '
导致重复键错误。这不是真的斑点
列。
在大多数方面,你可以考虑一个斑点
列作为A.varbinary.
可以像你一样大的列。同样,你可以认为一个文本
列作为A.varchar.
柱子。斑点
和文本
与......不同varbinary.
和varchar.
通过以下方式:
对于索引
斑点
和文本
列,您必须指定索引前缀长度。为了char
和varchar.
,前缀长度是可选的。看第8.3.4节“列索引”。
如果你使用二进制
与A的属性文本
数据类型,列分配二进制(_BIN.
)列字符集的整理。
长
和长瓦尔托尔
地图到了媒体下文字
数据类型。这是一个兼容性功能。
MySQL连接器/ ODBC定义斑点
值为龙瓦里亚里
和文本
值为龙紫色
。
因为斑点
和文本
值可能非常长,您可能会遇到使用它们的一些约束:
只有第一个
max_sort_length.
排序时使用列的字节。默认值max_sort_length.
是1024.您可以通过增加值的分类或分组来制作更多字节max_sort_length.
在服务器启动或运行时。任何客户都可以更改其会话的值max_sort_length.
多变的:mysql> set max_sort_length = 2000;MySQL>选择ID,通过评论评论T - > Order;
的实例
斑点
或者文本
使用临时表处理的查询结果中的列使服务器在磁盘上使用表而不是在内存中使用记忆
存储引擎不支持这些数据类型(参见第8.4.4节“MySQL内部临时表”)。使用磁盘会出现绩效惩罚,所以包括斑点
或者文本
仅当您真正需要时,查询结果中的列。例如,避免使用选择 *
,它选择所有列。最大大小
斑点
或者文本
对象由其类型确定,但您实际上可以在客户端和服务器之间传输的最大值由可用存储器的量和通信缓冲区的大小确定。您可以通过更改值的值来更改消息缓冲区大小max_allowed_packet.
变量,但您必须为服务器和客户程序执行此操作。例如,两者都是mysql.和mysqldump.使您能够更改客户端max_allowed_packet.
价值。看第5.1.1节“配置服务器”。那第4.5.1节“MySQL - MySQL命令行客户端”。, 和第4.5.4节“mysqldump - 数据库备份程序”。您可能还希望将数据包大小和数据对象的大小进行比较,并查看您存储的数据对象的大小,请参阅第11.7节“数据类型存储要求”
每个斑点
或者文本
值由单独分配的对象内部表示。这与所有其他数据类型相比,每个其他数据类型都在打开表时每列分配一次存储。
在某些情况下,可能需要存储二进制数据,例如媒体文件斑点
或者文本
列。您可以找到MySQL的字符串处理功能,可用于处理此类数据。看第12.8节“字符串函数和运算符”。出于安全性等原因,通常优选使用应用程序代码而不是给予应用程序用户文件
特权。您可以在MySQL论坛中讨论各种语言和平台的细节(http://forums.10bet靠谱mysql.com/)。