【问题标题】:Exporting a very large MySQL table to a .CSV using a SELECT statement?使用 SELECT 语句将非常大的 MySQL 表导出到 .CSV?
【发布时间】:2016-03-20 17:04:59
【问题描述】:

我有一个大约 1B 行的 MySQL 表。我需要将每一行中的一列导出为 CSV。

  1. 我尝试了以下方法,但查询使用了我导出查询的本地计算机上的所有内存,mysql 进程被终止。

    mysql -uuser -ppass -h host.com --database=dbname -e "select column_name FROM table_name" > column_name_export.csv

  2. 我无法使用 SELECT INTO OUTFILE,因为 MySQL 实例在 Amazon RDS 中运行,我无权访问服务器。

是否有一个 MySQL 实用程序可以批量导出它,还是我需要编写一个脚本来选择多个 id 范围?

【问题讨论】:

  • 在导出到 CSV 文件时,MySQL 实例可以处理多少条记录而不阻塞?
  • 要么将记录拆分为多个范围集,要么找到对您的查询有用的东西。
  • 我创建导出的本地服务器内存不足。也许 MySQL 服务器也会耗尽内存,但它的内存比我的本地机器多得多。
  • 你本地机器上的操作系统是什么?你也试过mysql -Bnq ...了吗?关闭一些不需要的交互式内容。

标签: mysql export mysqldump export-to-csv


【解决方案1】:

一种方法是使用Server-side cursors

但在我的情况下,甚至服务器内存不足(对于非常大的表),所以我选择将文件分成多个批次,按任何 id 排序。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-05-17
    • 2016-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多