mysql - 了解mysql内存消耗

标签 mysql memory

我想了解 sql 表中特定 blob 列消耗的内存。

我有一个表 STUDENT,其字段 DATA 为中等 blob 类型。我已经获取了 blob 列的总长度:

 select sum(length(DATA)) from STUDENT;
 result is : 922358752

我不明白的是如何获取该 blob 消耗的内存(以 MB 为单位)?

最佳答案

您正在使用 SUM(),因此您的结果是 STUDENT 中所有 DATA 列的长度之和> 表。以字节为单位。

通常,通过将字节除以 1024 得到千字节。通过将千字节除以 1024 得到兆字节。通过...得到千兆字节。你明白了。

MySQL 在其磁盘文件中存储额外的内容。其中一些额外的东西是可以预见的。例如,每个中等 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;

关于mysql - 了解mysql内存消耗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39508444/

相关文章:

java - Java程序与Linux命令一起使用的内存使用情况

mysql - brew 和 mysql55 安装失败

php - 调用时在列表框中显示列表框中存储的值

Java应用程序无法连接到openshift中的mysql数据库

mysql - 子查询上的 SQL RIGHT JOIN 不起作用

spring - 一起使用 Spring @Scheduled 和 @Async

mysql - 全文搜索 PHP

c - 从文件 (.txt) 中读取并保存到 char* C

Apache 崩溃与 munmap_chunk() : invalid pointer after update to php7 on Jessie

c - 在C中释放内存的问题