Как получить размер байта набора результатов в SQL-запросе?
Можно ли получить размер в байтах результатов SQL-запроса в MySQL?
Например:
select * from sometable;
ths возвращает 10000 строк. Мне не нужны строки, но размер набора результатов в байтах. Возможно ли это?
Ответ 1
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 для enum, set может быть неточным, обратите внимание
Ответ 2
упростить:
select sum(char_length(column1)+
char_length(column2)+
char_length(column3)+
char_length(column4) ... )<-- repeat for all columns
from your_table
Вам нужно добавить IFNULL() в каждый столбец, как @futilerebel упомянул
Ответ 3
Чтобы использовать решение 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