SQL-主從數據庫

問題一:爲什麼要使用主庫(OneDataBase)和從庫(TwoDataBase)呢?

主從數據庫其實爲了實現數據的讀寫分離。

問題二:那麼爲什麼要讀寫分離呢?讀寫分離有什麼好處呢?

第一:一般業務我們需要select,insert,update,delete進行數據操作。如果當我進行查詢select的時候,同時對數據進行了insert,update等【獨佔鎖】操作,其實查詢數據需要等待獨佔鎖釋放才能查到數據(髒讀除外)。如果我不想等待的話  可以使用讀寫分離這種。我不管主庫(OneDataBase)進行什麼操作,我查詢數據一律使用從庫(TwoDataBase)。

關於鎖可以參考https://blog.csdn.net/u011791378/article/details/85272719

第二:索引一般我們都使用,但是如果過多的索引會影響到insert,update,delete的速度,因爲數據需要從新排列。其實我們添加索引只是想要查詢速度快點。

第三:可以分擔數據庫的壓力,比如我主庫(OneDataBase)和從庫(TwoDataBase)可以分佈在兩臺服務器上。

大概總結了以下四點:

1:提高服務器【讀】性能的瓶頸

2:有效的避免了鎖的產生(意向排他鎖與意向共享鎖)

3:能夠合理的使用索引

4:可以數據庫橫向擴展

 

一般使用主從數據庫的情況,是我業務上大部分查詢不需要及時性,比如允許1分鐘的延誤。如果設計時設計所有數據必須及時顯示,那麼主從數據庫顯然就不合適了。

如果我的業務大部分數據是不需要及時性可以查詢從庫(TwoDataBase),那麼有些數據我必須需要及時性的數據,如修改密碼,應該怎麼做?

 

針對於及時性數據有以下兩種方法:

1:數據庫只有主庫(OneDataBase)和從庫(TwoDataBase),查詢及時性只能查詢主庫的數據。

2:除了主庫(OneDataBase)和從庫(TwoDataBase),還有臨時庫(ThreeDataBase)。臨時庫是存放最新數據的。

 

其實主從數據庫庫是爲了主庫能夠快速的存儲數據和從庫能夠快速的查詢數據。

 

這個只是整理下知識點,有很多實現的方法未說明,可能也有錯誤理解的地方,希望大家指出。

 

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