我想了解sql表中特定blob列所消耗的内存。
我有一个表学生,其字段数据为medium blob类型。我已经获取了blob列的总长度:
select sum(length(DATA)) from STUDENT;
result is : 922358752我不明白的是,如何让这个blob消耗的内存以MB为单位?
发布于 2016-09-15 19:17:19
您使用的是SUM(),所以您的结果是STUDENT表中所有DATA列的长度之和。以字节为单位。
通常,通过将字节除以1024来获得千字节。通过将千字节除以1024可以得到兆字节。你可以通过....获得千兆字节。你明白了吧。
MySQL在它的磁盘文件中存储额外的内容。有些额外的东西是可以预测的。例如,每个medium blob列使用三个额外的字节。看看这个:http://dev.mysql.com/doc/refman/5.7/en/storage-requirements.html
您的SUM()结果不包括这额外的三个字节。如果你想包含它们,你需要
select sum(length(DATA)) + 3 * count(DATA) from STUDENT;或
select sum(length(DATA) + 3) from STUDENT;您可能会像这样很好地显示兆字节
select ROUND(sum(length(DATA) + 3)/(1024.0*1024.0), 2) from STUDENT;https://stackoverflow.com/questions/39508444
复制相似问题