mysql中blob字段过多怎么办

62次阅读
没有评论

共计 1166 个字符,预计需要花费 3 分钟才能阅读完成。

自动写代码机器人,免费开通

这篇文章主要介绍 mysql 中 blob 字段过多怎么办,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

根据 MySQL 官方文档数据类型网站:http://www.htmlite.com/mysql003.php

BLOB 最大长度为 65535(64 KB) 个字符的字符串。

MySQL 手册上说:BLOB 或 Text 对象的最大大小取决于它的类型,但您实际可以在客户端和服务器之间传输的最大值取决于可用的内存量和通信缓冲区的大小。

如果需要更长的数据量,请考虑使用:

MEDIUMBLOB16777215 字节 (16 MB)

LONGBLOB4294967295 字节 (4GB)

常见问题:

表类型:innodb,row_format=compact(这是默认的行格式)
插入超过 10 个 blob,blob 的数据量很大(768 字节),插入失败:报 Row size too large (8126). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
表类型:innodb,row_format=dynamic(这是 innodb 的新文件存储格式 Barracuda 所支持的行格式)
插入超过 10 个 blob,blob 的数据量很大(768 字节),插入成功

注意事项:

BLOB 与 TEXT 是为了存储极大的字符串而设计的数据类型,采用二进制与字符串方式存储。mysql 对待这两个类型可谓煞费苦心,mysql 会把这两种类型的值当做一个独立的对象处理,存储引擎在存储时通常会做特殊处理,当 BLOB 与 TEXT 的值太大时,InnoDB 会使用专门的“外部”存储区域来进行存储,此时每个值在行内会采用 1~4 个自己存储指针,在外部存储区域存储实际值。

Mysql 对 BLOB 与 TEXT 类型进行排序的处理上与其他类型不同,只针对最前面的 max_sort_length 自己进行排序,如果只需要对前面的更少的字节进行排序,那么可以通过设置 max_sort_length 参数或者 substring(value,length) 来截取部分字符串。

在实际使用中应该慎用这两个类型,尤其是会创建临时表的情况下,因为如果临时表大小超过 max_heap_table_size 或者 tmp_table_size,就会将临时表存储在磁盘上,进而导致整体速度下降!

以上是“mysql 中 blob 字段过多怎么办”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注丸趣 TV 行业资讯频道!

向 AI 问一下细节

丸趣 TV 网 – 提供最优质的资源集合!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-12-18发表,共计1166字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)