2014-03-27 60 views
1

我有几个查询似乎要返回大量的数据,但我想知道多少。有没有办法计算MySQL查询响应的大小?

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

+0

[如何获取SQL查询中结果集的字节大小?](http://stackoverflow.com/questions/4524019/how-to-get-the-byte-size-of-resultset- in-an-sql-query) – Ray

+0

我试过那个 - 它没有工作。 –

+0

你使用PHP这样的语言来打mysql吗? – Ray

回答

1

要在DB做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; 

这只会给你原始的数据大小,但不会像数据包头被转回(如果你的结果集被分解成许多数据包)那样的额外开销。

甚至有一种巧妙的方式可以用临时表或存储过程将查询传递给它。

+0

这是伟大的,它应该做我所需要的。 –

相关问题