- 发帖可能变空内容,邪门暂不知所以然
- 『稷下学宫』新认证方式,24年网站打算和努力目标
主题:求助:如何将MySQL中超过200M行的数据 -- 龙驹坝
输出成csv格式?
select * into outfile
只给了我50M左右的数据。
不清楚你的情况是什么。自己写一个程序吧。每次抽一部分数据。自己写文件,反正CSV格式就是文本文件。
或者干脆 select * from table where id<1000 into file1,
select * from table where id>=1000 and id<2000 into file2.
然后手工合并文件。
另外呢,mysql数据文件200M, 但是去掉控制字符,索引以后,可能真是数据只有50M。需要自己判断。
SELECT * INTO OUTFILE '/tmp/result.txt'
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
FROM test_table;
知不知道有没有参数可以调整以后输出几百个M的数据?
否则,我只能将数据拆分成50M以下的再输出。可是我的另一个程序需要全部的数据,只能在用别的工具把它们组合起来。头疼。
只有50M行。漏了很多。不知道为什么。
1. 得到总行数
select count(*) from test_table
2. 依次分割输出
select * into outfile .....
from test_table
limit 50000000 # export first 50M line
...
limit 5000001,10000000 #export line 50M to 100 M
....
不过比你笨且慢就是。
但是为什么不给我报个错呢?浪费我好几天功夫。
[mysqldump]
quick
max_allowed_packet=16M
我是本地机。没有远程连接。
客户用的是MySql,给了我们一个几个大数据文件,是MySqlDump出来的。我要把他们揉扒揉扒,再输出成CSV文件。 MySql不是很熟悉,这几天头大得很:一个错误,就是一两天的处理时间。
数据中有些特殊字符,MySql能认,SAS和我的C程序都不能认,判断为了文件结束符。
解决办法:把这几行删掉。