我有一個大的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