Sql-Server
SQL Server 與 MongoDB 的比較
首先很抱歉,如果我在這裡錯了。感謝轉發到正確的地方。
對於我的問題:我正在實習作為一名程序員,沒有真正的數據庫經驗,並且我願意將 Microsoft SQL Server 與 MongoDB 進行比較,如果公司改用它的話會有好處。
對於原始數據,我選擇了最大的 3 個表。
表:
Article
有超過 ~1,2 個 Mrd 記錄x-----------------------------x | article_id| suppID | ... | x-----------|---------|-------x | 1 | 5 | ... | | 2 | 6 | ... | | 3 | 7 | ... | x-----------------------------x
表:
Price
超過 ~2,3 條 Mrd 記錄x-----------------------------x | price_id |ArticleID| ... | x-----------|---------|-------x | 1 | 1 | ... | | 2 | 2 | ... | | 3 | 3 | ... | x-----------------------------x
表:
Price_Archive
超過 ~5,8 個 Mrd 記錄x-----------------------------x | article_id| country| ... | x-----------|---------|-------x | 1 | DE | ... | | 2 | EN | ... | | 3 | EN | ... | x-----------------------------x
我了解 SQL Server 和 NoSQL 的主要區別是什麼。但是現在更多的技術測試如何實現比較?
至於遷移,我做了一個簡單
Copy Paste
的並將其$lookup
用於一些測試場景。此外,創建一個主要的單一集合(文章)並將其他 2 個表集成到其中,如MongoDB-Document-Oriented
.是否有免費工具可以記錄查詢使用了多少記憶體/時間等?我應該檢查哪些其他情況?
SQL 和 NoSQL 在很多方面都不同,但要點是 SQL 更擅長關係,而 NoSQL 更擅長非關係。每種技術都適用於不同的目的。
兩者之間有很多現有的基準和比較,例如這裡、這里和這裡。請注意比較文章中的偏見,並註意當有人說 NoSQL 更快時,這可能意味著可靠性更低。
要對 SQL 查詢進行基準測試,您可以查看以下內容:
- 設置統計時間
或者使用類似的東西:
DECLARE @DateTimeStamp DATETIME SET @DateTimeStamp = current_timestamp ... --do some stuff to measure here PRINT CAST(DATEDIFF(ms, @DateTimeStamp, current_timestamp) AS VARCHAR) + 'ms'
要對 MongoDB 查詢進行基準測試,您可以查看以下內容:
- .explain(“執行統計”)
- mongodb執行時間Millis
以下是兩者之間的一些比較:
SQL
- 更昂貴的初始成本
- 關係型
- 更好的事務數據完整性(更多成本)
- 更常見,因此更多開發人員有經驗
- 更可靠的安全性
- 用於度量和監控的付費工具,例如Solar Winds和Idera
- 可能有免費工具,但我不知道它們
NoSQL ( MongoDB )
- 較低的初始成本
- 非關係型
- 沒有交易(更少的成本)
- 非同步插入和更新
- 根據寫入關注值,它可能會更快但可靠性更低,或者更慢但可靠性更高
- 可能更具可擴展性
- 不太成熟的安全性
- 用於 MongoDB 伺服器指標和監控的付費工具,例如Server Density。