共计 1277 个字符,预计需要花费 4 分钟才能阅读完成。
本文丸趣 TV 小编为大家详细介绍“mysql 中 blob 和 text 有哪些区别”,内容详细,步骤清晰,细节处理妥当,希望这篇“mysql 中 blob 和 text 有哪些区别”文章能帮助大家解决疑惑,下面跟着丸趣 TV 小编的思路慢慢深入,一起来学习新知识吧。
区别:1、MySQL 中的 BLOB 用于保存二进制数据,而 TEXT 用于保存字符数据;2、BLOB 列没有字符集,并且排序和比较基于列值字节的数值值,而 TEXT 列有一个字符集,并且根据字符集的校对规则对值进行排序和比较。
本教程操作环境:windows7 系统、mysql8 版本、Dell G3 电脑。
在 MySQL 中有两个字段类型容易让人感觉混淆,那就是 TEXT 与 BLOB,下面我们就来看看两种的差异。
blob 和 text 的区别
1、主要差别
TEXT 与 BLOB 的主要差别就是 BLOB 保存二进制数据,TEXT 保存字符数据。目前几乎所有博客内容里的图片都不是以二进制存储在数据库的,而是把图片上传到服务器然后正文里使用 img 标签引用,这样的博客就可以使用 TEXT 类型。而 BLOB 就可以把图片换算成二进制保存到数据库中。
2、类型区别
BLOB 有 4 种类型:TINYBLOB、BLOB、MEDIUMBLOB 和 LONGBLOB。它们只是可容纳值的最大长度不同。
TEXT 也有 4 种类型:TINYTEXT、TEXT、MEDIUMTEXT 和 LONGTEXT。这些类型同 BLOB 类型一样,有相同的最大长度和存储需求。
3、字符集
BLOB 列没有字符集,并且排序和比较基于列值字节的数值值。TEXT 列有一个字符集,并且根据字符集的校对规则对值进行排序和比较
4、大小写
在 TEXT 或 BLOB 列的存储或检索过程中,不存在大小写转换,都一样!
5、严格模式
运行在非严格模式时,如果你为 BLOB 或 TEXT 列分配一个超过该列类型的最大长度的值值,值被截取以保证适合。如果截掉的字符不是空格,将会产生一条警告。使用严格 SQL 模式,会产生错误,并且值将被拒绝而不是截取并给出警告。
6、其它
当保存或检索 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 中 blob 和 text 有哪些区别”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注丸趣 TV 行业资讯频道。