
我正在考慮設計一個將接收大量記錄的系統。
每秒可以在資料庫中執行的插入次數是否有固定限制?
我們一般用MS SQL server,Oracle有更好的嗎?是否有可能在 No-SQL 雲端解決方案上獲得更好的效能?
答案1
我不知道有哪個資料庫系統對每秒的操作數有人為限制,如果我發現一個這樣做的話,我會鐵青。唯一的限制因素應該是作業系統和硬體施加的實際限制,特別是磁碟吞吐量。
您問題的其餘部分(哪個資料庫「更好」)取決於您的實施和要求。如果您只是將資料轉儲到儲存桶中,則可以使用 NoSQL 解決方案,例如MongoDB可能是合適的,而且他們的表現可能相當令人印象深刻。如果您的資料是高度相關的,基於 SQL 的 RDBMS 系統是更好的選擇。
對於任何基於SQL 的RDBMS,您應該花費一些時間來調整系統以獲得最佳性能——您的資料庫供應商可能會有一小堆關於該主題的文檔,以及經過最佳化調整的系統和剛剛優化的系統之間的差異。
答案2
當我在尋找為什麼我在自己的一些效能測試中看到一些有趣的結果時,我偶然發現了這篇文章。
我在 postgres 上進行了測試,看看如何透過將插入分組在一起來提高效能。就像我沒有一次執行 1 次插入一樣,我將幾個插入到一個大的 sql 字串中,然後運行該 sql。
我知道在測試中,我結合得越多,我期望的效能就越好,因為與實際數據相比,開銷開始最小化。我還認為,由於在如此長的字串中出現單位元錯誤時必須重新傳輸帶來的開銷,效能在某些時候會開始下降。
讓我沒想到的是我的實驗結果。我不確定如何解釋這些數據,所以也許如果有人對此了解更多,他們可以嘗試解釋它。