時間:2024-03-26 14:41作者:下載吧人氣:22
1、為什么選擇MongoDB?
1、性能
在大數據時代中,大數據量的處理已經成了考量一個數據庫最重要的原因之一。而MongoDB的一個主要目標就是盡可能的讓數據庫保持卓越的性能,這很大程度地決定了MongoDB的設計。在一個以傳統機械硬盤為主導的年代,硬盤很可能會成為性能的短板,而MongoDB選擇了最大程度而利用內存資源用作緩存來換取卓越的性能,并且會自動選擇速度最快的索引來進行查詢。MongoDB盡可能精簡數據庫,將盡可能多的操作交給客戶端,這種方式也是MongoDB能夠保持卓越性能的原因之一。
2、擴展
現在互聯網的數據量已經從過去的MB、GB變為了現在的TB級別,單一的數據庫顯然已經無法承受,擴展性成為重要的話題,然而現在的開發人員常常在選擇擴展方式的時候犯了難,到底是選擇橫向擴展還是縱向擴展呢?
橫向擴展(scale out)是以增加分區的方式將數據庫拆分成不同的區塊來分布到不同的機器中來,這樣的優勢是擴展成本低但管理困難。
縱向擴展(scale up) 縱向擴展與橫向擴展不同的是他會將原本的服務器進行升級,讓其擁有更強大的計算能力。這樣的優勢是易于管理無需考慮擴展帶來的眾多問題,但缺點也顯而易見,那就是成本高。一臺大型機的價格往往非常昂貴,并且這樣的升級在數據達到極限時,可能就找不到計算能力更為強大的機器了。
而MongoDB選擇的是更為經濟的橫向擴展,他可以很容易的將數據拆分至不同的服務器中。而且在獲取數據時開發者也無需考慮多服務器帶來的問題,MongoDB可以將開發者的請求自動路由到正確的服務器中,讓開發者脫離橫向擴展帶來的弊病,更專注于程序的開發上。
3、使用
MongoDB采用的是NoSQL的設計方式,可以更加靈活的操作數據。在進行傳統的RDBMS中你一定遇到過幾十行甚至上百行的復雜SQL語句,傳統的RDBMS的SQL語句中包含著大量關聯,子查詢等語句,在增加復雜性的同時還讓性能調優變得更加困難。MongoDB的面向文檔(document-oriented)設計中采用更為靈活的文檔來作為數據模型用來取代RDBMS中的行,面向文檔的設計讓開發人員獲取數據的方式更加靈活,甚至于開發人員僅用一條語句即可查詢復雜的嵌套關系,讓開發人員不必為了獲取數據而絞盡腦汁。
2、NoSQL對傳統數據庫設計思維的影響
1、預設計模式與動態模式
傳統數據庫設計思維中,項目的設計階段需要對數據庫表中的字段名稱、字段類型、進行規定,如果嘗試插入不符合設計的數據,數據庫不會接受這條數據以保證數據的完整性。
–數據庫字段:NAME, SONG
INSERT INTO T_INFO VALUES(‘John’,’Come Together’); –成功
INSERT INTO T_INFO VALUES(‘小明’, 20, ‘xiaoming@111.com’); –失敗
網友評論