使用SELECT语句将一个非常大的MySQL表导出为.CSV文件?

4
我有一个拥有约10亿行的 MySQL 表。我需要将每一行的单个列导出到 CSV 文件中。
以下是我尝试过的方法,但查询会使用在本地机器上导出查询时所有的内存并且 mysql 进程会被关闭: mysql -uuser -ppass -h host.com --database=dbname -e "select column_name FROM table_name" > column_name_export.csv 因为 MySQL 实例运行在 Amazon RDS 中,我无法使用 SELECT INTO OUTFILE
是否有 MySQL 工具可以分批次导出数据?或者,我需要编写一个脚本来选择 ID 范围?

MySQL实例在导出CSV文件时能处理多少条记录而不会崩溃? - Tim Biegeleisen
你可以将记录分成多个范围集,或者找到一些对你的查询有用的东西。 - Avidos
我正在创建导出文件的本地服务器已经用尽了内存。也许MySQL服务器也会用尽内存,但它比我的本地机器有更多的内存。 - T. Brian Jones
你本地机器的操作系统是什么?你尝试过 mysql -Bnq ... 吗?它可以关闭一些不必要的交互式内容。 - miken32
--quick(或-q)是@miken32的技巧 - Marco Marsala
1个回答

0

一种方法是使用服务器端游标

但在我的情况下,即使服务器也因为非常大的表而耗尽了内存,所以我选择将文件分成多个批次,按任何ID排序。


只需在mysql CLI中添加--quick选项,即可实现此功能。 - Marco Marsala

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接