2015-11-23 69 views
1

我從流星/ MongoDB的集合中提取數據。總共有大約15,000份文件,並且查詢大概拉了一半(8,100)。正如Kadira報道的那樣,獲取(在做任何事情之前)需要5-7秒。真的很慢訪問流星

有在相關領域的指標,我可以運行在20-50ms查找() - 所以它是這樣的問題,而不是發現的抓取。而這一次排除了對文檔做任何事情 - 這只是find()。

每個文檔是大約十幾領域,大多短與一對夫婦ISODates和1-2串的一對夫婦陣列(< 30字符)串。總而言之,總數據集(全部8000條記錄)大約爲5兆字節。

這是所有的服務器上 - 沒有什麼東西被髮送到客戶端。

那是時間正常嗎?如果不是,我可以考慮採取什麼措施來加速它?

+0

如果您運行相同的查詢,返回相同數量的文檔,使用MongoDB的CLI做你會得到相同的時間?在一端可能只是一個緩慢的連接,而不是獲取方法的問題。 –

+0

1.減少您發佈的字段數量,2.減少同時發佈的文檔數量(您是否真的需要客戶端上的所有8k文檔?)3.如果您正在進行聚合某種服務器使用mongo聚合框架並讓db直接做工作,4.固態硬盤! –

+0

@ michel-floyd:這一切都在服務器上 - 沒有任何內容發佈到客戶端。這是支持一些自定義報告的例程的一部分。服務器從客戶端獲取報告參數(集合,字段等),然後有效地將集合加入到一起。然後將結果存入收集中,並逐個發送給客戶。這部分工作正常。聽起來我可能需要重新構建整個事情 - 但我從來不會想到,將5兆字節的數據拉到服務器的內存中需要很長時間。 –

回答

0

嗯......不知道到底是什麼導致它,但是從託管服務提供商到另一個數據庫的改變固定它。

+0

小心分享數據庫託管服務商之前和之後? – evolross

+1

modulus.io - > compose.io –

+0

哈哈我在compose.io上遇到同樣的問題,你有沒有診斷過它?我不能切換供應商 –