我有一些查询似乎返回了大量数据,但我想知道有多少。
除了序列化数据并将其转储到文件中之外,有没有办法以编程方式选择查询响应的字节大小?
最佳答案
要在数据库中 100% 执行此操作,您可以根据查询结果创建一个表:
CREATE TABLE db_name.test_table SELECT a v1, b v2 FROM db_name.tbl2;
您想要结果大小的查询应该替换
SELECT a v1, b v2 FROM db_name.tbl2
然后得到表的大小
SELECT round((data_length / 1024 / 1024), 2) "Size in MB"
FROM information_schema.TABLES
WHERE table_schema = "db_name" AND table_name = "test_table";
然后删除测试表:
drop table db_name.test_table;
这只会为您提供原始数据大小,但不会提供任何额外开销,例如传输回的数据包 header (如果您的结果集被分成许多数据包)。
甚至可能有一种巧妙的方法来使用临时表或在将查询传递给它的存储过程中执行此操作。
关于mysql - 有没有办法计算 MySQL 查询响应的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22695288/