我有一个大的MySQL表(大约7.5亿行),我只想提取几列。在查询完成之前,我可以强制MySQL输出结果吗?
SELECT id, delid FROM tbl_name;
没有加入或选择标准或任何东西。这两个字段都有一个索引(分开)。
原则上,它可能刚刚开始阅读表格并立即将值分发出去,但实际上整个系统只是咀嚼记忆并基本上停下来。
好像正在执行整个查询,并产生的任何输出前,输出保存在某个地方......
我搜索上unbuffering,关闭缓存等,但就是无法找到答案。
(mysqldump的是几乎什么,我想,除了它转储整个表 - 但至少它只是将立即开始产生输出)
什么是你与7.5亿行2列做准备?这些列中存储了什么以及它们是什么类型的存储?你的数据库服务器有多少内存?你的处理代码写入了多少内存/哪种语言? – P4ul 2011-03-15 07:52:37
删除重复项(使用UNIX排序)并将它们放回到另一个表中。服务器只有4Gb RAM,但我不明白为什么它需要RAM,除非有一些要求必须在发出之前存储整个输出。 – 2011-03-15 07:55:16