从phpMyAdmin导出非常大的表?

时间:2011-03-09 01:23:59

标签: php mysql curl phpmyadmin

对于非常大的表格,我指的是有500万到2000万条记录甚至更大的表格。我需要将它们导出到多个文件中的MS Excel中,每个文件都有60,000条记录。

一个接一个地输出它们将是一个手工操作,你知道从记录#xxxx开始输入转储xxxx行并点击Go几百次。非常烦人。

有没有办法让这个过程自动化?

到目前为止我尝试过:

  1. print_r($_POST);exit();的顶部添加“phpmyadmin/export.php”,以查看在将表格导出到Excel时已传递的变量。删除它们然后使用cURL将相同的变量从我自己的php脚本发布到phpmyadmin / export.php。这样,我可以自动保存导出的数据并增加起始记录#。但是,当我将所有变量发布到它时,phpmyadmin/export.php一直给我这个错误:

    export.php:缺少参数:what(FAQ 2.8)

    export.php:缺少参数:export_type(FAQ 2.8)

  2. 这很奇怪,因为我100%确定在发布的变量中'what'和'export_type'。尝试了一切(FAQ 2.8),但没有任何工作。

    1. Firefox iMacros插件。试一试,但它似乎无法自动将表单输入值增加一定量。或者是吗?
    2. 知道如何实现这一目标吗?将mysql导出到excel中没有任何原生支持吗?

      更新:我的客户想要它。不是我。他只是沉迷于Excel,并用它做任何事情。

4 个答案:

答案 0 :(得分:3)

尝试使用桌面应用mySQL YOG

答案 1 :(得分:1)

那个大小?!
您不使用Web服务器来执行此操作(时间限制只是其中一个),您需要一个命令行/ exe /桌面应用程序来处理这样的大小。
在PHP中使用php-cli编写这样的东西并不太难,它应该这样做 底线:没有网络工具可以做到这一点。

答案 2 :(得分:1)

使用MySQL命令行工具导出为CSV,然后使用GNU split将其分割为每65k行左右。

答案 3 :(得分:0)

在mysql查询下面执行:

SELECT 
    name,mobile,email,address
FROM
    customer
WHERE
  status = 'Active' 
INTO OUTFILE 'C:/tmp/active_customers.csv' 
FIELDS ENCLOSED BY '"' 
TERMINATED BY ';' 
ESCAPED BY '"' 
LINES TERMINATED BY '\r\n';