国产精一区二区_午夜视频99_免费白白视频_中文字幕一区免费

熱門文章> 數據庫面試題,數據庫面試題基礎知識 >

數據庫面試題,數據庫面試題基礎知識

36氪企服點評小編
2021-07-16 11:30
692次閱讀

       Mysql作為現代最流行的關系型數據庫,幾乎是每一個后臺程序員都必須掌握的一項技能。在后臺面試中,Mysql也經常出現,除了常見的事務、索引外,一些部署和應用Mysql也是如此Mysql的一個常用技術讀寫分離也經常在面試中出現。接下來,小編將介紹數據庫面試題,數據庫面試題基礎知識的相關內容,一起來看看吧。

數據庫面試題,數據庫面試題基礎知識數據庫面試題,數據庫面試題基礎知識

1.數據庫面試題

為什么需要讀寫分離

       我們都知道單臺機器的性能是有限的,每臺機器可以維護的連接數是有限的,CPU的算力是有限的,每臺機器的內存也是有限的,那么,隨著業務的增長,數據日益增多,我們必然會面對這樣一個問題,部署Mysql的機器會越來越成為系統的瓶頸。

       對于這個問題,我們有兩種解決思路,第一個是把數據庫進行拆分,不同的業務拆分到不同的數據庫,或者同一個業務按照一定的維度進行拆分,也就是我們常說的分庫分表。

       另外一個思路,由于大部分互聯網應用都是讀多寫少的,所以,我們能否不拆分數據庫,讓同一份數據復制到多臺機器上,不同業務到不同的機器上進行數據讀取。這就是我們常常說的讀寫分離。

       通常,我們都是兩種手段一并使用的。

讀寫分離如何實現

       首先是數據同步問題,主機是如何把數據從主機同步到從機的。一般,我們都是通過Mysql的主從同步進行實現,當然,也有一些大廠會自研相關的中間件進行解決。Mysql的主從同步主要是利用Binlog的回放機制,將主機上的binlog文件同步到從數機器上進行回放。

       第二個是程序的路由問題,寫的時候寫主機,讀的時候什么時候讀取主機,什么時候讀取從機。

       最簡單的方法,就是交給程序去實現,由代碼自己去決定是讀機還是從機。優點是簡單,開發方便,并且非常靈活,不同的業務可以自主選擇是否讀取從機。缺點是開發需要理解每次數據讀取是訪問哪個數據庫,如果遇到不靠譜的程序員,有時候真是一種災難。另外,如果遇到緊急情況,例如主機故障需要另外選擇主機的時候,可能需要修改所有業務機器的配置,才能完成主機的切換。

       第二個是使用數據庫中間件,由中間件去決定如何路由。中間件對外屏蔽了多種細節,對業務來說,就跟直接連接數據庫一樣,降低了開發的難度。即使是數據庫主機發生變化,只需要操作數據庫中間件。當然,有得必有失,新增的中間件勢必會增加系統的復雜度,中間件的性能與穩定性也是一個考驗,多路由一個系統也會造成延遲的增加。

讀寫分離會帶來什么問題?

       無論是采用哪一種讀寫分離的方案,都會面臨這樣的一個問題,剛剛更新的數據,立馬在從庫進行查詢,可能會查詢到臟數據,因為主從同步是需要時間的。設想,如果用戶在支付完訂單之后,回到訂單頁面,看到訂單還是未支付,是有怎么樣的感受?

       為了解決主從同步延遲的問題,一般我們可以采用下面的解決方案:

       強制讀主庫,對于用戶讀取訂單、支付等重要的信息,強制讀取主庫信息,不讀從庫。從庫,留給一些對實時性要求不高的場景讀取,例如后臺異步任務、庫存系統校驗訂單狀態等等。

       緩存標記方案,因為主從同步延遲造成的臟讀只是占整個系統讀取的一部分,如果我們把所有的讀取都切換成讀取主庫,那么讀寫分離的意義就會大打折扣,有沒有折中的方案呢?我們知道,內存相對于磁盤,讀寫效率更快,那么,我們可以在服務端維護一個LRUCache,用來表示最近哪些數據被更新過。例如,我們維護哪些用戶的訂單ID最近有更新,一旦查詢的用戶命中這個Cache,那么就強制讀主庫。由于數據的每次查詢可能落到不同的機器上,我們可以使用Redis來作為緩存,解決這個問題。

       Sleep方案,這個方案聽起來很搞笑,但實際上是應用最廣泛的方案,當手機喚起微信支付或支付寶支付之后,頁面上明明有一個返回原APP,卻不自動跳轉,跳轉回來之后,會彈支付成功頁,而不是直接回到訂單首頁,這些都是為了延長用戶的操作時間,為后臺系統爭取更加充分的時間。以上就是數據庫面試題,數據庫面試題基礎知識的相關內容,感謝您的閱讀。

[免責聲明]

文章標題: 數據庫面試題,數據庫面試題基礎知識

文章內容為網站編輯整理發布,僅供學習與參考,不代表本網站贊同其觀點和對其真實性負責。如涉及作品內容、版權和其它問題,請及時溝通。發送郵件至36dianping@36kr.com,我們會在3個工作日內處理。

相關文章
最新文章
查看更多
關注 36氪企服點評 公眾號
打開微信掃一掃
為您推送企服點評最新內容
消息通知
咨詢入駐
商務合作