Mysql BLOB、BLOB与TEXT区别及性能影响、将BLOB类型转换成VARCHAR类型
在排查公司项目业务逻辑的时候,见到了陌生的字眼,如下图
顺着关键字BLOB搜索,原来是Mysql存储的一种类型,从很多文章下了解到如下信息
了解
MySQL中,BLOB字段用于存储二进制数据,是一个可以存储大量数据的容器,它能容纳不同大小的数据。
MySQL的四种BLOB类型
- 类型 大小(单位:字节)
- TinyBlob 最大 255
- Blob 最大 65K
- MediumBlob 最大 16M
- LongBlob 最大 4G
BLOB与TEXT的区别
一般在保存少量字符串的时候,我们会选择CHAR或者VARCHAR,而在保存较大文本时,通常会选择使用TEXT或者BLOB。二者之间的主要差别是BLOB能用来保存二进制数据,比如照片;而TEXT只能保存字符数据,比如一遍文章或日记。TEXT和BLOB中又分别包括TEXT,MEDIUMTEXT,LONGTEXT和BLOB,MEDIUMBLOB,LONGBLOB三种不同的类型,他们之间的主要区别是存储文本长度不用和存储字节不用,用户应该根据实际情况选择能够满足需求的最小存储类型。
BLOB和TEXT值会引起一些性能问题,特别是执行了大量的删除操作时。
删除操作会在数据库表中留下很大的“空洞”,以后要填入这些“空洞”的记录在插入的性能上会有影响。为了提高性能,建议定期使用OPTIMEIZE TABLE功能对这类表进行碎片整理,避免因为“空洞”导致性能问题。
详细说明:https://blog.csdn.net/weixin_36910300/article/details/79104536
性能影响:https://blog.csdn.net/zhao_6666/article/details/79132285
将BLOB转化为VARCHAR
select CAST(content AS CHAR(10000) CHARACTER SET utf8) from t_bonus_code_log
https://blog.csdn.net/qjc_501165091/article/details/51226018 原生的写入与读取