https://www.cnblogs.com/linguoguo/p/10640179.html MongoDB: 更高的寫入負載 預設情況下,MongoDB更側重高數據寫入性能,而非事務安全,MongoDB很適合業務系統中有大量“低價值”數據的場景。但是應當避免在高事務安全性的系統中使用Mong ...
https://www.cnblogs.com/linguoguo/p/10640179.html
MongoDB:
更高的寫入負載
預設情況下,MongoDB更側重高數據寫入性能,而非事務安全,MongoDB很適合業務系統中有大量“低價值”數據的場景。但是應當避免在高事務安全性的系統中使用MongoDB,除非能從架構設計上保證事務安全。
高可用性
MongoDB的復副集(Master-Slave)配置非常簡潔方便,此外,MongoDB可以快速響應的處理單節點故障,自動、安全的完成故障轉移。這些特性使得MongoDB能在一個相對不穩定(如雲主機)的環境中,保持高可用性。
數據量很大或者未來會變得很大
依賴資料庫(MySQL)自身的特性,完成數據的擴展是較困難的事,在MySQL中,當一個單達表到5-10GB時會出現明顯的性能降級,此時需要通過數據的水平和垂直拆分、庫的拆分完成擴展,使用MySQL通常需要藉助驅動層或代理層完成這類需求。而MongoDB內建了多種數據分片的特性,可以很好的適應大數據量的需求。
基於位置的數據查詢
MongoDB支持二維空間索引,因此可以快速及精確的從指定位置獲取數據。
表結構不明確,且數據在不斷變大
在一些傳統RDBMS中,增加一個欄位會鎖住整個資料庫/表,或者在執行一個重負載的請求時會明顯造成其它請求的性能降級。通常發生在數據表大於1G的時候(當大於1TB時更甚)。 因MongoDB是文檔型資料庫,為非結構貨的文檔增加一個新欄位是很快速的操作,並且不會影響到已有數據。另外一個好處當業務數據發生變化時,是將不在需要由DBA修改表結構。
Mysql:
1)這些數據通常需要做結構化查詢,比如join,這時候,關係型資料庫就要勝出一籌
2)這些數據的規模、增長的速度通常是可以預期的
3)事務性、一致性
4)豐富的鎖機制