有没有一种方法可以计算MySQL查询响应的大小?

Bar*_*man 3 mysql sql size response

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

只需序列化数据并将其转储到文件中,是否可以通过编程方式选择查询响应的字节大小?

Ray*_*Ray 6

要在数据库中100%完成此操作,您可以根据查询结果创建一个表:

 CREATE TABLE db_name.test_table SELECT a v1, b v2 FROM db_name.tbl2;
Run Code Online (Sandbox Code Playgroud)

您要替换的结果大小的查询 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";
Run Code Online (Sandbox Code Playgroud)

然后删除测试表:

 drop table db_name.test_table;
Run Code Online (Sandbox Code Playgroud)

这只会给您原始数据大小,但不会给您带来任何额外的开销,例如数据包报头被传回(如果您的结果集被分成许多数据包)。

甚至可以使用临时表或在将查询传递到其中的存储过程中执行此操作。