如何在SQL查询中获取结果集的字节大小?

时间:2010-12-24 03:32:30

标签: sql mysql rdbms

是否可以在MySQL中获取sql查询结果的字节大小?

例如:

select * from sometable;

返回10000行。我不希望行,但结果集的大小,以字节为单位。有可能吗?

4 个答案:

答案 0 :(得分:18)

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的{​​p> enumset可能不准确,请注意

答案 1 :(得分:12)

要构建Angelin的解决方案,如果您的数据包含空值,您需要将IFNULL添加到每列:

select sum(
    ifnull(char_length(column1), 0) +
    ifnull(char_length(column2), 0) +
    ifnull(char_length(column3), 0) +
    ifnull(char_length(column4), 0) ... <-- repeat for all columns
)
from your_table

答案 2 :(得分:10)

简化:

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

你需要在每个列中添加IFNULL(),正如@futilerebel所提到的那样

答案 3 :(得分:4)

如果unicode将更多字节,则

CHAR_LENGTH()获取字符数 - 使用LENGTH()表示字节数:https://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_length