我有大型數據庫表,大約5GB,現在我要使用"Select * from MyTableName"
獲取當前數據庫的當前快照,使用PDO
在PHP
與數據庫進行交互。這樣製備的查詢,然後執行它如何將MySQL表的當前快照存儲到CSV文件(創建後)?
// Execute the prepared query
$result->execute();
$resultCollection = $result->fetchAll(PDO::FETCH_ASSOC);
不是一種有效的方法爲大量內存正在被用戶用於存儲到其近似,5GB
關聯數組數據。
我的最終目標是將Select
查詢返回的數據收集到CSV文件中,並將CSV文件放在客戶端可以從其獲取FTP位置的FTP位置。
我認爲另一個選項是要做到:
SELECT * INTO OUTFILE "c:/mydata.csv"
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY "\n"
FROM my_table;
但我不知道這是否會工作,我有cron的發起的完整過程,我們沒有一個CSV文件,所以基本上這方法,
- PHP腳本將不得不創建一個CSV文件。
- 對數據庫執行選擇查詢。
- 將選擇查詢結果存儲到CSV文件中。
什麼是最好的或有效的方式來做這種類型的任務?
任何建議!
您是否必須使用PHP?難道你不能從命令行或shell腳本使用mysql轉儲表嗎? – 2010-03-24 15:37:33
@Manos:我必須使用PHP,我不能直接從命令行或shell腳本使用mysql轉儲表。 – Rachel 2010-03-24 15:38:27