Sql-Server

SQL Server 與 MongoDB 的比較

  • April 18, 2017

首先很抱歉,如果我在這裡錯了。感謝轉發到正確的地方。

對於我的問題:我正在實習作為一名程序員,沒有真正的數據庫經驗,並且我願意將 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 WindsIdera
  • 可能有免費工具,但我不知道它們

NoSQL ( MongoDB )

  • 較低的初始成本
  • 非關係型
  • 沒有交易(更少的成本)
  • 非同步插入和更新
  • 根據寫入關注值,它可能會更快但可靠性更低,或者更慢但可靠性更高
  • 可能更具可擴展性
  • 不太成熟的安全性
  • 用於 MongoDB 伺服器指標和監控的付費工具,例如Server Density

引用自:https://dba.stackexchange.com/questions/171305