數據庫主從庫和集羣庫的理解一

出現的原因:如果我的業務類訪問的數據庫突然掛掉了,造成我們的業務癱瘓。這時候需要我保證我們業務正常訪問,就出現了主從數據庫和集羣數據庫。主要是針對業務的可用性來說。

集羣數據庫:如果我們的業務使用了兩個數據庫A、B,那麼這個時候兩個數據庫的id如果是自增長的,那麼id肯定會重複,那麼這個時候即使前端來了一條數據,我們也不知道查那個表(問題1)?

爲了解決(問題1),如是我們將A、B表的ID抽出來放到C表中生成,當A、B需要插入數據的時候,需要在C表中獲取ID。這個時候解決了ID重複的問題。但是如果數據庫插入很大的時候,一張生成ID的C表肯定會出現性能問題,出現這種性能問題的時候,我們又該怎麼處理呢?(問題2)

解決問題2:因爲性能不好,這個時候,我們將生成id的C表也拆分成C、D兩張表來生成。這個是時候生成的ID,又不能確認唯一性,這麼解決這個唯一性的問題?(問題3)

解決問題3 :使用步長來解決,如果是兩張創建id的表,那麼設置數據庫創建表的id步長爲2,這個時候第一個數據庫創建的id是1,3,5,7.....。第二個創建id表的id是2,4,6,8...就不會出現重複。

性能進一步優化:我們可以在我們的業務層直接生成一個一段id的list集合,比如[1,1000],然後當使用到一定的比率的時候,我們在數據庫中申請第二段[2000, 3000].這樣,性能更好,不用每次都去訪問數據庫生成ID。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章