我期待學習node.js和mongodb,它們看起來適合我想要做的事情。作爲一個幫助我學習的小項目,我認爲我需要從phpbb3論壇複製「posts」表到mongodb表中,所以我做了類似這樣的事情,其中db是mongodb數據庫連接,client是mysql數據庫連接。通過node.js中的數據庫記錄進行迭代
db.collection('posts', function (err, data) {
client.query('select * from phpbb_posts", function(err, rs) {
data.insert(rs);
});
該工程確定,當我做小表,但我的職位表中有10多萬行,當我離開它運行了一個小時該查詢甚至不回來。我懷疑它試圖將整個數據庫表加載到內存中,然後插入它。
所以我想要做的是一次讀一大塊行並插入它們。然而,我看不到如何讀取node.js中的行的子集,甚至更多的問題,我無法理解如何通過回調獲取通知時,我可以一次遍歷查詢它已完成。
任何想法如何我最好做到這一點? (我正在尋找使用node.js的解決方案,因爲我想知道如何解決這類問題,我毫無疑問可以用其他方式輕鬆完成)
兩個問題:1.你的「選擇」是否是一個錯字?我看到一個單引號和一個雙引號。 2.當你做限制10時會發生什麼?或限制1?這個過程是否至少適用於小數據集? – 2011-03-03 22:09:48
對不起,我稍微簡化了查詢併發布了錯字。我可以做一個10或甚至1000的限制,這工作正常。但之後它變得越來越慢。 – jcoder 2011-03-03 22:36:12