我需要根据一些预测目的每天增加多少兆字节表来进行报告。我可以很容易地找到如下表格的大小
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
应仅为该查询提供以兆字节为单位的大小
目前我正在根据条件将大表分解为较小的表,例如:我在特定时间段内制作单独的表,并将所有内容转储到该表中以查找表大小。我认为这是一个非常糟糕的主意
答案 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,以便获得查询结果的大小。