当前位置: 首页 > 面试题库 >

您如何确定特定的MySQL表占用多少磁盘空间?

支嘉祥
2023-03-14
问题内容

有没有一种快速的方法来确定特定的MySQL表占用了多少磁盘空间?该表可以是MyISAM或Innodb。


问题答案:

对于表,请mydb.mytable运行以下命令:

SELECT (data_length+index_length) tablesize
FROM information_schema.tables
WHERE table_schema='mydb' and table_name='mytable';

基洛比

SELECT (data_length+index_length)/power(1024,1) tablesize_kb
FROM information_schema.tables
WHERE table_schema='mydb' and table_name='mytable';

兆字节

SELECT (data_length+index_length)/power(1024,2) tablesize_mb
FROM information_schema.tables
WHERE table_schema='mydb' and table_name='mytable';

技嘉

SELECT (data_length+index_length)/power(1024,3) tablesize_gb
FROM information_schema.tables
WHERE table_schema='mydb' and table_name='mytable';

一般

这是一个通用查询,其中最大单位显示为TB(TeraBytes)

SELECT 
    CONCAT(FORMAT(DAT/POWER(1024,pw1),2),' ',SUBSTR(units,pw1*2+1,2)) DATSIZE,
    CONCAT(FORMAT(NDX/POWER(1024,pw2),2),' ',SUBSTR(units,pw2*2+1,2)) NDXSIZE,
    CONCAT(FORMAT(TBL/POWER(1024,pw3),2),' ',SUBSTR(units,pw3*2+1,2)) TBLSIZE
FROM
(
    SELECT DAT,NDX,TBL,IF(px>4,4,px) pw1,IF(py>4,4,py) pw2,IF(pz>4,4,pz) pw3
    FROM 
    (
        SELECT data_length DAT,index_length NDX,data_length+index_length TBL,
        FLOOR(LOG(IF(data_length=0,1,data_length))/LOG(1024)) px,
        FLOOR(LOG(IF(index_length=0,1,index_length))/LOG(1024)) py,
        FLOOR(LOG(IF(data_length+index_length=0,1,data_length+index_length))/LOG(1024)) pz
        FROM information_schema.tables
        WHERE table_schema='mydb'
        AND table_name='mytable'
    ) AA
) A,(SELECT 'B KBMBGBTB' units) B;

试试看 !!!



 类似资料:
  • 使用 SHOW TABLE STATUS; 只能查看所有索引加在一起的大小 有什么办法可以查看每个索引占用磁盘空间的大小吗?

  • 本文向大家介绍Linux 实现定时文件占用磁盘空间大小操作方法,包括了Linux 实现定时文件占用磁盘空间大小操作方法的使用技巧和注意事项,需要的朋友参考一下 打开定时任务编辑,cent 默认使用vim直接打开。ubutun如果装了多种编辑器第一次打开的时候是指定编辑器的操作。 (3) */1 * * * * sh /root/Shell/monitor.sh 将这一行添加进文件中。表示每隔一分钟

  • 如果docker文件中有RUN命令,那么它会创建一些中间图像。我的问题是,这些中间图像是否占用硬盘的内存?如果是,docker build--rm应该足够了吗?

  • 本文向大家介绍如何计算Java对象占用了多少空间?,包括了如何计算Java对象占用了多少空间?的使用技巧和注意事项,需要的朋友参考一下 本文介绍了计算Java对象占用了多少空间的方法,分享给大家供大家参考,具体内容如下 一、对象头 对象的头部至少有两个WORD,如果是数组的话,那么三个WORD,内容如下: 1、对象的HashCode,锁信息等 2、到对象类型数据的指针 3、数组的长度(如果是数组的

  • 问题内容: 我在VM上运行容器。我的容器默认将日志写入/var/lib/docker/containers/CONTAINER_ID/CONTAINER_ID- json.log文件,直到磁盘已满。 当前,我必须手动删除此文件,以避免磁盘已满。我读到在Docker 1.8中会有一个参数来旋转日志。您会建议什么作为当前解决方法? 问题答案: Docker 1.8已发布,带有日志轮换选项。新增: 当容

  • 我正在 VM 上运行容器。默认情况下,我的容器将日志写入 /var/lib/泊坞窗/容器/CONTAINER_ID/CONTAINER_ID-json.log 文件,直到磁盘已满。 目前,我必须手动删除这个文件,以避免磁盘已满。我听说Docker 1.8中会有一个参数来旋转日志。您建议当前的解决方法是什么?