2012-09-15 66 views
0

我想要一個數據庫來插入簡單的數據(1表10列)。問題是我需要每秒插入200,000條記錄。我的電腦是惠普服務器,配有96GB ram和300T NAS驅動器。我不知道這個插入率。用於高速插入的最佳數據庫,SQL或NOSQL?

我聽說過Mongodb。你能帶我走對路嗎?

+0

您的意思是說1列10列? – Vikdor

+0

是是隻有一個或兩個簡單的表 – sam

+0

200,000記錄一個_second_?你確定你是準確的嗎?假設一個表和每列5個字節,你的300TB NAS將在1年內滿,'200000 * 10 * 5 * 60 * 60 * 24 * 365字節= 315.4TB'。 – Ben

回答

3

Mongo在這裏可能是一個不錯的選擇,但每秒200k是一個很大的數字,所以仔細的設計將是必要的,我認爲無論你使用什麼。

  • 200kps * 300 bytes/document = 60MBps - >〜600Mbps - >接近千兆以太網適配器飽和。所以要注意一些事情。

  • 在這樣的情況下

    讓您的字段名稱短,因爲它們存在於BSON每個文檔

  • 的_id字段應該單調遞增的(約),使整個_id指數不必是內存。默認情況下這是真實的,因爲BSON ObjectIds可以做到這一點。如果添加更多索引,則可能無法使用1臺服務器達到200K;也許可以用SSD來完成。

  • 我不確定在mongo的一臺服務器上,你會達到每秒200K的速度。 100K應該很容易。取決於盒子的速度。如果你分裂你可以使用多臺機器每秒200K。

  • 是否有任何方法將這些小行綁定到對您的應用程序有意義的較大文檔中?如果你這樣做,你將獲得更高的吞吐量:例如一個文檔由相當於10個這樣的行組成,它將成爲一個插入,並在_id索引中有一個鍵。

相關問題