MySQL中TEXT和BLOB的主要区别在于:TEXT用于存储字符数据(如长文本),而BLOB用于存储二进制数据(如图片、音频)。
核心区别
1. 存储内容类型
- TEXT
:专为字符数据设计,适用于文章、日志等文本内容,支持字符集转换和文本排序。
- BLOB
:存储二进制数据(如图片、视频),不涉及字符集处理,按字节数值排序。
2. 字符集与排序规则
TEXT字段有字符集属性,排序和比较基于字符集规则;BLOB无字符集,直接比较二进制值。
子类型与容量
两者均有四种子类型,最大容量相同但单位不同:
- TINYTEXT/TINYBLOB
:255字节。
- TEXT/BLOB
:65KB(TEXT以字符计,BLOB以字节计)。
- MEDIUMTEXT/MEDIUMBLOB
:16MB。
- LONGTEXT/LONGBLOB
:4GB。
功能差异
- 索引支持
:TEXT可建前缀索引或全文索引;BLOB仅支持前缀索引。
- 默认值
:两者均不可设置默认值。
- 严格模式处理
:超长数据在非严格模式下截断并警告,严格模式下报错。