mysql - 有没有办法计算 MySQL 查询响应的大小?

标签 mysql sql size response

我有一些查询似乎返回了大量数据,但我想知道有多少。

除了序列化数据并将其转储到文件中之外,有没有办法以编程方式选择查询响应的字节大小?

最佳答案

要在数据库中 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/

相关文章:

mysql - 根据 child 及其 child 的条件获取父数据

c - 数组大小为 2000 及以上

java - 如何在 MySQL 后端的 Hibernate save() 调用上设置超时?

mysql - DBD 基本身份验证 Apache 2.2

mysql - 根据条件比较和显示数据

sql - 循环中的 Postgres 查询联合

c++ - 这个 "size of array"模板函数是如何工作的?

windows - 从Delphi 6和WinXP到Delphi 2007和Vista/Win7如何处理窗体大小问题

php - HTML 表单中的复选框数组

mysql - 更新最新记录