MYSQL TINYBLOB vs LONGBLOB

jom*_*bie 14 mysql database blob space file

这是我上一个问题的后续跟踪:Blob和存储要求

我做了一些测试SHOW TABLE STATUS,发现实际使用的磁盘空间总量仅取决于上传到数据库的实际文件的大小,而不取决于列的类型(例如TINYBLOB或LONGBLOG).

那么,如果情况并非如此,那么当我们选择BLOB类型的另一个时,会有什么区别呢?

Mar*_*c B 25

blob字段的每个大小都保留额外的字节以保存大小信息.longblob使用4 + n字节的存储空间,其中n是您要存储的blob的实际大小.如果您只存储(比方说)10个字节的blob数据,那么您将占用14个字节的空间.

相比之下,tinyblob使用1 + n字节,因此您的10个字节将占用11个字节的空间,节省3个字节.

处理只有少量记录时,3个字节并不多,但随着DB记录计数的增长,保存的每个字节都是一件好事.

  • 这个答案的快速补遗:保存的3个字节不仅仅是节省磁盘空间.它还会影响内存,缓存等方面的容量,因此它也会对性能产生影响. (6认同)