我想保存在MySQL工作台约1,000,000记录的查询结果。
当我运行SELECT,只有1000条记录显示出来(MySQL工作台的默认限制)。 我知道我可以改变的极限,或删除了极限,但我不想1,000,000记录时,被加载到结果面板(这可能会崩溃我的电脑?),但我确实想将结果保存到一个文件中。
请问MySQL工作台让你查询的结果直接保存到一个文件? 或保存整个结果集的1000呢?
我想保存在MySQL工作台约1,000,000记录的查询结果。
当我运行SELECT,只有1000条记录显示出来(MySQL工作台的默认限制)。 我知道我可以改变的极限,或删除了极限,但我不想1,000,000记录时,被加载到结果面板(这可能会崩溃我的电脑?),但我确实想将结果保存到一个文件中。
请问MySQL工作台让你查询的结果直接保存到一个文件? 或保存整个结果集的1000呢?
这是可以改变的查询结果行限制,或者完全删除该限制。
转到编辑→首选项→SQL编辑器(标签)。 如果你不能找到查询结果 ,去SQL查询(标签)来代替。
找到查询结果部分,取消勾选行上限的复选框
单击确定 。
重新运行查询。
LOAD DATA INFILE
有一个兄弟叫SELECT ... INTO OUTFILE 。 你可以使用它,如:
SELECT * FROM mytable
INTO OUTFILE '/tmp/mytable.csv'
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n';
这种方法不会在UI使用不必要的资源。
作为@florian指出:它将,然而,在数据库服务器上的输出文件,而不是在客户机上。
还要注意的是上面的SELinux或AppArmor安全框架可能会阻止的MySQL从标准数据库文件夹之外写入文件。 如果遇到权限被拒绝的错误,即使目录是可写mysql
用户,很可能是其中之一。
只需添加“限制$号”追加SQL子句。 如果不加限制,则默认返回线是1000。