共計 919 個字符,預計需要花費 3 分鐘才能閱讀完成。
自動寫代碼機器人,免費開通
丸趣 TV 小編給大家分享一下數據庫系統應怎么實現負載平衡,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
數據庫系統應如何負載平衡
通常沒有人在作數據庫的 Load Balance, 即便做的話,只是把它當熱切換器而已。
如果數據量大到一臺數據庫無法負擔,考慮拆 Database 的時候,首要考慮數據的同步該如何處理。
在做數據庫多臺并行前,要先確定數據一致性需要多高,如果可以容忍有時間差的同步,可以考慮用 Big Table 架構的數據庫來進行處理,否則就是加快取吧,并且盡量把數據庫讀 / 寫的任務分散來做。
理論上講,合理的作法應該是要組成 Database Cluster 才對。在 Cluster 的環境中,Database 主機可以有很多臺,但是大家的后端都接到同一個外部存儲器 (通常是 SAN),所有主機都 寫入同一個存儲器內的一個數據庫而已,也因為只有一個存儲器、一個數據庫,所以主機之間沒有同步的需要。
數據庫系統應如何負載平衡
負載平衡設備是不能解決數據庫負載過重的問題,但 Databse Server 性能不足的原因很多,應詳細探究為何性能不足,架 Database Cluster 能解決部分問題,但不一定能帶來太大性能上的改進。
拆 Table 結構是一個方法,通常是用在數據量特大的 Table 才建議,但用這種方式,程序開發人員一定會很痛苦,如果真要采取這種架構,建議程序架構 要多一層數據存取層,商業物件不能直接下 SQL 存取數據庫數據,要通過數據存取層元件來存取數據庫數據,才能避免程序工程師的人為錯誤。
建議是先分析數據庫性能瓶頸,再來決定架構。根據經驗,Disk I/ O 是最大的問題,而造成 Disk I/ O 的原因,通常是 Index 沒設好,或是程序設計師撰寫的 SQL 指令,沒考慮到數據增長后的性能問題。這些問題都排除后,再考慮數據庫的備份或鏡像,將復雜的查詢指令、BI 報表及 Data Mining 的數據來源,指向備份或鏡像出來的那臺 Database 主機,這樣應該就可以解決你的問題。
看完了這篇文章,相信你對“數據庫系統應怎么實現負載平衡”有了一定的了解,如果想了解更多相關知識,歡迎關注丸趣 TV 行業資訊頻道,感謝各位的閱讀!
向 AI 問一下細節