我有大型数据库表,大约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