資料庫其他常見面試題

2021-10-19 07:25:05 字數 1032 閱讀 2698

一般情況只發生鎖超時,就是乙個程序需要訪問資料庫表或者欄位的時候,另外乙個程式正在執行帶鎖的訪問(比如修改資料),那麼這個程序就會等待,當等了很久鎖還沒有解除的話就會鎖超時,報告乙個系統錯誤,拒絕執行相應的sql操作。

發生死鎖的情況比較少,比如乙個程序需要訪問兩個資源(資料庫表或者字段),當獲取乙個資源的時候程序就對它執行鎖定,然後等待下乙個資源空閒,這時候如果另外乙個程序也需要兩個資源,而已經獲得並鎖定了第二個資源,那麼就會死鎖,因為當前程序鎖定第乙個資源等待第二個資源,而另外乙個程序鎖定了第二個資源等待第乙個資源,兩個程序都永遠得不到滿足。

解決方案可以是:一次性分配所有的表資源,這樣就不會死鎖。

hash索引結構的特殊性,其檢索效率非常高,索引的檢索可以一次定位,不像b-tree索引需要從根節點到枝節點,最後才能訪問到頁節點這樣多次的io訪問,所以hash 索引的查詢效率要遠高於 b-tree索引。

1. 雜湊索引能以 o(1) 時間進行查詢,但是失去了有序性:無法用於排序與分組;

只支援精確查詢,無法用於部分查詢和範圍查詢。hash索引僅僅能滿足"=",「in"和」<=>"查詢,不能範圍查詢,

以及like 『***

%』 這樣的部分模糊查詢(這種部分模糊查詢,其實本質上也是範圍查詢)

因為原先是有序的鍵值,經過雜湊演算法後,有可能變成不連續的了,就沒辦法再利用索引完成範圍查詢檢索;

2. hash索引遇到大量hash值相等的情況後效能並不一定就會比b-tree索引高。

如果儲存的資料重複度很低(也就是說基數很大),對該列資料以等值查詢為主,沒有範圍查詢、沒有排序的時候,特別適合採用雜湊索引

innodb 儲存引擎有乙個特殊的功能叫「自適應雜湊索引」,當某個索引值被使用的非常頻繁時,會在 b+tree 索引之上再建立乙個雜湊索引,這樣就讓 b+tree 索引具有雜湊索引的一些優點,比如快速的雜湊查詢。

比如:select *;

使用explain關鍵字執行執行計畫來測試sql效能

mysql高效能優化規範建議

資料庫常見面試題

1.事務的四大特性acid 1 原子性 事務包含的操作要麼全部成功,要麼全部回退。2 一致性 事務開始前和開始後,資料庫的完整性沒有被破壞。舉例 轉賬 3 隔離性 對資料庫進行併發操作時,事務不能被其他事務干擾。4 永續性 事務一旦提交,對資料庫的影響是永久的。2.事務的併發 包含3類資料讀和2類資...

資料庫方面常見面試題

1 說出資料連線池的工作機制是什麼 j2ee 伺服器啟動時會建立一定數量的池連線,並一直維持不少於此數目的池連線。客戶端程式需要連線時,池驅動程式會返回乙個未使用的池連線並將其表記為忙。如果當前沒有空閒連線,池驅動程式就新建一定數量的連線,新建連線的數量有配置引數決定。當使用的池連線呼叫完成後,池驅...

資料庫部分常見面試題

事務的四大特性 acid 原子性原子性是指事務包含的所有操作要麼全部成功,要麼全部失敗回滾。一致性一致性是指事務必須是資料庫從乙個一致性狀態變換到另乙個一致性狀態,也就是說乙個事務執行之前和執行之後都必須處於一致性狀態。拿轉賬來說,假設使用者a和使用者b兩者的錢加起來一共是5000,那麼不管a和b之...