在mysql上获取以兆字节为单位的表格大小,仅用于选定的数据

时间:2017-03-06 03:03:38

标签: mysql sql

我需要根据一些预测目的每天增加多少兆字节表来进行报告。我可以很容易地找到如下表格的大小

SELECT 
    table_name AS `Table`, 
    round(((data_length + index_length) / 1024 / 1024), 2) `Size in MB` 
FROM information_schema.TABLES 
WHERE table_schema = "$DB_NAME"
    AND table_name = "$TABLE_NAME";

但我想知道如何仅查找所选数据的大小 例如:我需要在特定表格中找出最近一周数据的大小(以兆字节为单位)
有些事情如下

select * from table where date between d1 and d2应仅为该查询提供以兆字节为单位的大小

目前我正在根据条件将大表分解为较小的表,例如:我在特定时间段内制作单独的表,并将所有内容转储到该表中以查找表大小。我认为这是一个非常糟糕的主意

1 个答案:

答案 0 :(得分:0)

 select sum(row_size) 
from (
  select 
    char_length(column1)+
    char_length(column2)+
    char_length(column3)+
    char_length(column4) ... <-- repeat for all columns
  as row_size 
  from your_table
) as tbl1;

将所有列用作char_length,以便获得查询结果的大小。