是否可以在MySQL中获取sql查询结果的字节大小?
例如:
select * from sometable;
返回10000行。我不希望行,但结果集的大小,以字节为单位。有可能吗?
答案 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> enum
,set
可能不准确,请注意
答案 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)
CHAR_LENGTH()
获取字符数 - 使用LENGTH()
表示字节数:https://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_length