2012-06-05 55 views
4

我在MySql中有一個表,我使用PhpMyAdmin管理。目前它坐落在96萬行左右。導出大MySql表

我有一個老闆喜歡看Excel中的數據,這意味着每週都必須將數據導出到Excel中。

我正在尋找一種更有效的方法來做到這一點。因爲我實際上無法一次完成整個表格,因爲它超時了。所以我一直堅持把表分成更小的查詢並像這樣導出。

我已經嘗試將Excel(和Access)直接連接到我的數據庫,但同樣的問題;它超時。有什麼方法可以延長連接限制嗎?

回答

3

老實說,對於這個大小的數據,我會建議做一個mysqldump,然後將表導回到其他地方安裝的另一個MySQL副本,也許在專用於此任務的虛擬機上。從那裏,您可以根據需要設置超時等,而不用擔心會浪費生產數據庫的資源限制。在基於Unix的操作系統上使用nice或基於Windows的系統上的進程優先級,您應該能夠在不對生產系統產生太大影響的情況下執行此操作。

或者,您可以將生產數據庫的set up a replica拉到那裏並從中取出數據。擁有一個所謂的「報告數據庫」可以複製生產系統中的各種表格甚至整個數據庫,這在大型環境中實際上是一種相當普遍的做法,可以確保您不會意外地殺死您的生產數據庫,從而爲某人拉動數字。作爲一個附加優勢,在開始爲老闆提供數據之前,您不必等待mysqldump備份完成;你可以馬上做。

1

行數不是太多。運行查詢將數據導出到csv文件中:

SELECT column,column2 INTO OUTFILE '/path/to/file/result.txt' 
    FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' 
    LINES TERMINATED BY '\n' 
    FROM yourtable WHERE columnx = 'çondition'; 
8

是你的老闆Rain Man?他只是在原始的「數據」中發現「信息」?

或者他在excel中構建函數而不是問他真正需要什麼?

與他坐了一個小時,看看他實際上在做什麼與數據。有什麼問題被問到?哪些模式正在被檢測(手動)?編寫一個真正的工具來查找這些信息,然後將其插入到監控/警報系統中。

或者,找一個新老闆。 嚴重。你可以告訴他我說的是這樣的。

+3

我不會投這個答案,但這實際上是一個很好的答案。好橫向思維! – Mauro