2014-03-27 91 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

這是偉大的,它應該做我所需要的。 –

相關問題