查詢處理
分成4個階段:查詢分析、查詢檢查、查詢優化、查詢執行
全表掃描算法
索引掃描算法(B+樹索引或hash索引):效率高
連接處理
嵌套循環算法:按照數據塊讀入內存,分外層循環(表1),內層循環(表2)對比
排序-合併算法:按連接相同屬性先排序表一,取第一個掃描表2連接
索引連接算法:建立索引,查找相應的元組
hash join算法:把連接屬性作爲hash碼,劃分階段(創建階段:創建hash表)、試探階段(連接階段)
事務
用戶定義的一個數據庫操作序列。要麼全做,要麼都不做。
BEGIN TRANSACTION;
COMMIT;
ROLLBACK;
活鎖
T1封鎖數據R,事務T2請求封鎖R,T2等待,T3請求封鎖R,T1釋放R封鎖之後批准T3請求,T2仍然等待....
T2永遠等待,這就是活鎖。
解決方法:先來先服務
死鎖
T1等待T2,T2等待T1,就是死鎖
解決方法:
(1)預防死鎖:一次封鎖法、順序封鎖法
(2)允許死鎖的發生,採取一定的手段定期診斷系統中有無死鎖,有就解除。超時法、等待圖法
兩段鎖協議
保證調度的可串行化,
事務分兩個階段:第一階段是獲得封鎖(擴展階段)、第二階段是釋放封鎖(收縮階段)
封鎖粒度:封鎖對象的大小