Nosql
水平縮放是什麼意思?
在數據庫環境中,我發現水平可擴展性是 NOSQL 數據庫的優勢之一。這個詞是什麼意思?
與垂直縮放相比如何?
水平縮放
水平縮放本質上是向外擴展而不是向上擴展。您不會去購買更強大的伺服器並將所有負載轉移到上面,而是購買 1 台以上的額外伺服器並在它們之間分配負載。
當您能夠同時在伺服器上執行多個實例時,使用水平擴展。通常,從 1 台伺服器升級到 2 台伺服器要比從 2 台伺服器升級到 5 台、10 台、50 台等要困難得多。
一旦解決了執行並行實例的問題,您就可以充分利用 Amazon EC2、Rackspace 的雲服務、GoGrid 等環境,因為您可以根據需要啟動和關閉實例,從而減少為伺服器電源付費的需求您不只是用來覆蓋那些峰值負載。
關係數據庫是並行執行完全讀/寫的更困難的項目之一。
我看到 Damien Katz 在奧斯汀的 StackOverflow DevDays 上談到 CouchDB,他創建 CouchDB 的主要關注點之一就是這些並行實例。由於這是從第一天開始就關注的焦點,因此它將更有能力利用水平縮放。
垂直縮放
垂直縮放則相反,建立而不是向外。去買你能買得起的最強大的硬體,把你的應用程序、數據庫等放在上面。
現實世界
當然,這兩者都有其優點和缺點。通常這兩者的組合用於最終解決方案。
您可能擁有您的主數據庫,每個人都可以在其中寫入和讀取大型硬體上的實時數據。然後分發數據庫的只讀副本,以進行更重的數據分析和報告,而最新的數據並不重要。然後前端 Web 應用程序可能在負載均衡器後面的多個 Web 伺服器上執行。