資料庫(第二天) 索引模組

2021-10-05 20:11:16 字數 1590 閱讀 8669

索引模組:

為什麼要使用索引?

能夠避免全表掃瞄,提公升檢索效率

什麼的資訊能夠成為索引?

主鍵,唯一鍵,具有區分性的

主鍵和唯一鍵的區別  :

外來鍵:

索引的資料結構:

二叉查詢樹,b-tree,b+-tree,hash

二叉查詢樹:按照大小按左中右排序,左子樹和右子樹高度差不大於1;

時間複雜度為 o(logn)

b-tree:根節點至少包括兩個孩子,樹中每個節點最多含有m個孩子(m>=2),除根節點和葉節點,其他每個節點至少擁有ceil(m/2)個孩子,所有葉節點都在同一層

b+-tree是b樹的變體,其定義基本與b樹相同,除了:

1.非葉子節點的子樹指標與關鍵字個數相同

2.非葉子節點的子樹指標p[i],指向關鍵字值[k[i],k[i+1])的子樹

3.非葉子節點僅用來索引,資料都儲存在葉子節點中

4.所有葉子節點均有乙個鏈指標指向下乙個葉子結點

b+樹更適合用來做儲存索引:

1.磁碟讀寫代價更低

2.查詢效率更加穩定 

3.更有利於對資料庫的掃瞄

索引模組:

密集索引和稀疏索引的區別:

密集索引檔案中的每個搜尋碼值都對應乙個索引值

稀疏索引檔案只為索引碼的某些值建立索引項(相當於分塊了)

密集索引,就是通過主索引直接檢索即可;

稀疏索引,利用輔助鍵獲取主鍵資訊,再去訪問主鍵索引,獲得我們想要的資料

如何定位並優化慢查詢sql

聯合索引的最左匹配原則的成因

索引是建立得越多越好嗎

慢查詢優化:

根據慢日誌定位慢查詢sql

使用explain等工具分析sql

修改sql或者盡量讓sql走索引

聯合索引的最左匹配原則的成因

最左匹配原則:

索引是建立得越多越好嗎

資料量小的表不需要建立索引,需要花更多時間和空間;

上班第二天

本想坐晚一班車的,誰知道這晚一班的也只是晚了 五 六分鐘,不高興再在站台上等,也只好小跑到車門上去了,果然,八點十分就到了。白天那個困啊 今天的工作內容和昨天一樣,做到後來我實在覺得測的差不多了,想幹些其他的,但這初來乍到的,也不好幹其他的呀,況且領導辦公室就在我旁邊。今天的工作總結有兩點 1 別把...

第二天實習

今天我早早到了銀行,開始給大家抹桌子,算是向愛妃學習吧。之後向wqy學習做表的方法,他很耐心。今天一天也就是做了這麼乙個表,但是還向dh學習了另外一些業務的處理,收穫不小。中午吃了雞腿 肉串和芸豆,好開心啊。我越來越喜歡自己的實習了。今天好多自己班上的同學來面試實習生,希望她們都能上!今天我沒有去同...

實習第二天

又是早起擠地鐵的一天 今天symphony說給我換了個導師,richard。於是我開始自己看,但是我並不清楚背景,不知道整個資料夾是幹什麼目的的,也不知道哪些檔案是需要看的。然後在richard的講解下,我慢慢明白了,終於知道我是幹啥的了,就是完善優化他們寫的自動化測試程式,首先是要看懂他們寫的。按...