牛客網面經題題目及答案總結 資料庫篇

2021-09-11 05:11:37 字數 760 閱讀 2252

主要有四個特性,acid,原子性(atomicity)、一致性(consistency)、隔離性(isolation)、永續性(durability)。

索引是用來加快查詢速度的,一般資料庫是使用b+樹來實現的。

總體上來說,b+樹在非葉子結點不儲存資料,只在葉子結點儲存。而b樹在葉子結點和非葉子結點都會儲存。這種結構導致你如果用b樹來進行查詢,會增加磁碟io的次數,導致效能不如b+樹。

悲觀鎖(pessimistic lock), 顧名思義,就是很悲觀,每次去拿資料的時候都認為別人會修改,所以每次在拿資料的時候都會上鎖,這樣別人想拿這個資料就會block直到它拿到鎖。傳統的關係型資料庫裡邊就用到了很多這種鎖機制,比如行鎖,表鎖等,讀鎖,寫鎖等,都是在做操作之前先上鎖。

樂觀鎖(optimistic lock), 顧名思義,就是很樂觀,每次去拿資料的時候都認為別人不會修改,所以不會上鎖,但是在更新的時候會判斷一下在此期間別人有沒有去更新這個資料,可以使用版本號等機制。樂觀鎖適用於多讀的應用型別,這樣可以提高吞吐量,像資料庫如果提供類似於write_condition機制的其實都是提供的樂觀鎖。

總結:兩種鎖各有優缺點,不可認為一種好於另一種,像樂觀鎖適用於寫比較少的情況下,即衝突真的很少發生的時候,這樣可以省去了鎖的開銷,加大了系統的整個吞吐量。但如果經常產生衝突,上層應用會不斷的進行retry,這樣反倒是降低了效能,所以這種情況下用悲觀鎖就比較合適。

7、

牛客網刷題總結(一)

1.出棧順序 已知某乙個字母序列,把序列中的字母按出現順序壓入乙個棧,在入棧的任意過程中,允許棧中的字母出棧,求所有可能的出棧順序 演算法 1.首先我們對輸入的字母序列進行字元的全排列 通過遞迴 2.然後在得到每一種排列的時候對其進行檢驗,判斷是否為輸入字母序列的彈出序列。2.字串解析 以下函式解析...

牛客網選擇題 資料結構

1 字串www.qq.com所有非空子串 兩個子串如果內容相同則只算乙個 個數是 1024 1018 5550 正確答案 d 解析 初始想法是組合問題,想錯了。字串概念理解錯誤。比如,abc的子串 a b c ab bc abc和乙個空子串 共 3 2 1 1 個 兩個字串 ab,bc,沒有ac.串...

牛客unity面經的一些題目記錄(不定期補充)

class program sort ary,ary.length static void sort int a,int count class program static intsort int n if n 2 return sum 1 減少用new建立物件的次數,在建立物件時會產生記憶體碎片...