資料庫部分原理實現

2021-06-23 00:34:07 字數 1072 閱讀 8771

有個做資料庫的同學,平時會和他聊一下,知道原理了才會更好用資料庫

關於連線的實現方法

l巢狀迴圈法

(nested-loop)

1、首先在表

1中找到第乙個元組,然後從頭開始掃瞄表

2,逐一查詢滿足連線條件的元組,找到後就將表

1中的第乙個元組與該元組拼接起來,形成結果表中乙個元組。

2、表2全部查詢完後,再找錶

1中第二個元組,然後再從頭開始掃瞄表

2,逐一查詢滿足連線條件的元組,找到後就將表

1中的第二個元組與該元組拼接起來,形成結果表中乙個元組。

3、重複上述操作,直到表

1中的全部元組都處理完畢

l排序合併法

(sort-merge)

1、首先按連線屬性對錶1和表

2排序2、對錶

1的第乙個元組,從頭開始掃瞄表

2,順序查詢滿足連線條件的元組,找到後就將表

1中的第乙個元組與該元組拼接起來,形成結果表中乙個元組。當遇到表

2中第一條大於表

1連線字段值的元組時,對錶

2的查詢不再繼續

3、找到表

1的第二條元組,然後從剛才的中斷點處繼續順序掃瞄表

2,查詢滿足連線條件的元組,找到後就將表

1中的第乙個元組與該元組拼接起來,形成結果表中乙個元組。直接遇到表

2中大於表

1連線字段值的元組時,對錶

2的查詢不再繼續

4、重複上述操作,直到表1或表

2中的全部元組都處理完畢為止

l索引連線

(index-join) 1、

對錶2按連線字段建立索引

2、對錶

1中的每個元組,依次根據其連線字段值查詢表

2的索引,從中找到滿足條件的元組,找到後就將表

1中的乙個元組與該元組拼接起來,形成結果表中乙個元組

所以一般連線的時候最好把大表放在前面,畢竟是乙個基礎表,小表放後面

union 和union all區別
兩個都是並操作,union會去除重複元素,union all不會

資料庫索引實現原理

1.什麼是索引?2.索引的型別 有兩種基本的索引結構,即索引檔案的儲存方式。乙個是順序索引,就是根據值的順序排序的 這個檔案裡面的值就是為其建索引的字段值,它被順序地放在索引檔案裡面 另外乙個是雜湊索引,就是將值平均分配到若干雜湊桶中,通過雜湊函式定位的。2.1 順序索引 順序索引分為兩類,單級索引...

Redis 單機資料庫的實現 資料庫原理

目錄 1.伺服器中的資料庫 2.資料庫鍵空間 2.1.讀寫空間時的維護操作 3.過期時間 4.過期刪除策略 4.1.定時刪除 4.2.惰性刪除 4.3.定期刪除 4.4.redis刪除策略 5.aof rdb和複製功能對對過期鍵的處理 5.1.rdb 5.2.aof 5.3.複製 6.資料庫通知 r...

資料庫索引的實現原理

說白了,索引問題就是乙個查詢問題。資料庫索引,是資料庫管理系統中乙個排序的資料結構,以協助快速查詢 更新資料庫表中資料。索引的實現通常使用b樹及其變種b 樹。在資料之外,資料庫系統還維護著滿足特定查詢演算法的資料結構,這些資料結構以某種方式引用 指向 資料,這樣就可以在這些資料結構上實現高階查詢演算...