Mysql select 以 'killed' 结尾

Cha*_*tin 6 mysql mysqldump mysql-5.1

好吧,我相信这会变成愚蠢的事情,但我是一个愚蠢的 n00b DBA。

我有一个很大的表,大约有 1.63 亿行和大约 44 GiB。在使用 mysqldump 进行一些备份实验后,我尝试在批处理模式下使用 select 构建一个制表符分隔的输出。

我试过

echo 'select * from node;' | mysql -u xx -p -B database > file
Run Code Online (Sandbox Code Playgroud)

它以消息“Killed”结束。

所以我尝试批量登录mysql,同样的查询,同样的结果。

我尝试以正常方式登录,然后做 select * from node;

结果还是一样:“被杀”。然而

create table temp_node (select * from node);
Run Code Online (Sandbox Code Playgroud)

工作正常。

所以我显然错过了一些基本的东西,但谷歌搜索没有帮助。可怜一个n00b,告诉我发生了什么?

请注意,问题与运行命令本身无关,而是当我运行命令或select * from node;mysql>提示符执行时,mysql 以消息“Killed”终止。

哦,我怎么能导出那个该死的表以便稍后加载?

Cha*_*tin 4

好吧,我觉得这是一条熟悉的信息。这是来自 LINUX 的说法“进程内存不足”。

好吧,没什么可说的了。mysql进程本身内存不足并被操作系统终止。我对实现没有很好的感觉,但它似乎正在尝试将整个表拉入内存以执行 select * 之类的操作。