开发者社区 > 数据库 > 关系型数据库 > 正文

mysql储存blob大小和实际的不一样

已解决

我在使用blob存字符的时候因为数据太大使用COMPRESS()进行压缩,压缩后的一个字段显示大小是103bytes 我有96个字段。但是我看这个表的数据大小(就这一条记录)的时候有352kb的大小这是为什么啊? 求原因

展开
收起
游客3ngg256yu5mso 2023-02-22 17:37:57 759 3
2 条回答
写回答
取消 提交回答
  • 发表文章、提出问题、分享经验、结交志同道合的朋友
    采纳回答

    你好楼主,这是正常的。

    MySQL中存储Blob类型的数据时,会根据数据大小分配一个固定长度的内存块进行存储。如果存储的数据大于这个内存块的大小,MySQL就会自动把数据分割成多个内存块存储。所以实际存储的大小可能会比原始数据大小大。

    另外,你使用了COMPRESS()函数进行压缩时,虽然压缩后的数据会变小,但是它在存储到数据库中时会被转换成二进制数据,其大小可能会比压缩前的数据还要大。所以压缩后的数据大小为103bytes,但在存储到数据库中时可能会变大。

    最后,你提到这个表的数据大小为352kb,这个大小包括了表中所有记录的大小之和。可以使用SELECT LENGTH(blob_column) FROM table_name WHERE condition 来查询这条记录的blob类型字段的大小。

    码字不易,望采纳!!!

    2023-02-22 17:45:36
    赞同 展开评论 打赏
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    MySQL中,BLOB是一个二进制大型对象,是一个可以存储大量数据的容器,它能容纳不同大小的数据,这个属于正常的

    2023-02-22 20:57:20
    赞同 展开评论 打赏

阿里云关系型数据库主要有以下几种:RDS MySQL版、RDS PostgreSQL 版、RDS SQL Server 版、PolarDB MySQL版、PolarDB PostgreSQL 版、PolarDB分布式版 。

相关产品

  • 云数据库 RDS MySQL 版
  • 相关电子书

    更多
    One Box: 解读事务与分析一体化数据库 HybridDB for MySQL 立即下载
    One Box:解读事务与分析一体化数据库HybridDB for MySQL 立即下载
    如何支撑HTAP场景-HybridDB for MySQL系统架构和技术演进 立即下载

    相关镜像