在mysql中有两个字段类型容易让人感觉混淆,那就是text与blob,特别是自己写博客程序的博主不知道改为自己的博客正文字段选择text还是blob类型。
下面给出几点区别:
一、主要差别
text与blob的主要差别就是blob保存二进制数据,text保存字符数据。目前几乎所有博客内容里的图片都不是以二进制存储在数据库的,而是把图片上传到服务器然后正文里使用标签引用,这样的博客就可以使用text类型。而blob就可以把图片换算成二进制保存到数据库中。
二、类型区别
blob有4种类型:tinyblob、blob、mediumblob和longblob。它们只是可容纳值的最大长度不同。
text也有4种类型:tinytext、text、mediumtext和longtext。这些类型同blob类型一样,有相同的最大长度和存储需求。
三、字符集
blob列没有字符集,并且排序和比较基于列值字节的数值值。text列有一个字符集,并且根据字符集的校对规则对值进行排序和比较
四、大小写
在text或blob列的存储或检索过程中,不存在大小写转换,都一样!
五、严格模式
运行在非严格模式时,如果你为blob或text列分配一个超过该列类型的最大长度的值值,值被截取以保证适合。如果截掉的字符不是空格,将会产生一条警告。使用严格sql模式,会产生错误,并且值将被拒绝而不是截取并给出警告。
六、其它
当保存或检索blob和text列的值时不删除尾部空格。
对于blob和text列的索引,必须指定索引前缀的长度。
blob和text列不能有默认值。
当排序时只使用该列的前max_sort_length个字节。max_sort_length的 默认值是1024。
当你想要使超过max_sort_length的字节有意义,对含长值的blob或text列使用group by或order by的另一种方式是将列值转换为固定长度的对象。标准方法是使用substring函数。
blob或text对象的最大大小由其类型确定,但在客户端和服务器之间实际可以传递的最大值由可用内存数量和通信缓存区大小确定。你可以通过更改max_allowed_packet变量的值更改消息缓存区的大小,但必须同时修改服务器和客户端程序。
编辑推荐:
- 了解MySQL中TEXT与BLOB字段类型的区别02-28
- MySQL中主键与索引关系02-28
- 解析MySQL中EXPLAIN命令02-28
- CentOS 6.5 下安装MySQL 5.7.12详细步骤(图文)02-28
- 解析mysql的启动过程02-28
- mysql 5.7.12 win64手动安装教程步骤(图文)02-28
- 机器关机或重启前时关闭mysql服务实例代码(收藏)02-28
- 如何从官网下载最新MySQL安装包?02-28
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- 了解MySQL中TEXT与BLOB字段类型的区别
了解MySQL中TEXT与BLOB字段类型的区别
26-02-28 - 解析MySQL中EXPLAIN命令
解析MySQL中EXPLAIN命令
26-02-28 - CentOS 6.5 下安装MySQL 5.7.12详细步骤(图文)
CentOS 6.5 下安装MySQL 5.7.12详细步骤(图文)
26-02-28 - mysql 5.7.12 win64手动安装教程步骤(图文)
mysql 5.7.12 win64手动安装教程步骤(图文)
26-02-28 - 如何从官网下载最新MySQL安装包?
如何从官网下载最新MySQL安装包?
26-02-28 - 图文详解MySql中的事务
图文详解MySql中的事务
26-02-28 - 教你怎么修改mysql默认最大连接数
教你怎么修改mysql默认最大连接数
26-02-28 - 几个常用的mysql截取函数
几个常用的mysql截取函数
26-02-28 - Mysql常用的sql语句总结
Mysql常用的sql语句总结
26-02-28 - 全面了解MySQL中的数据类型
全面了解MySQL中的数据类型
26-02-28
