Mysql、MongoDB對比和使用場景


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)豐富的鎖機制


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM