mysql储存blob大小和实际的不一样[阿里云数据库MySQL版]

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

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
=====这是一个广告位,招租中,联系qq 78315851====
1 条回复 A 作者 M 管理员
  1. 你好楼主,这是正常的。

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

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

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

    码字不易,望采纳!!!

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