索引模組:
為什麼要使用索引?
能夠避免全表掃瞄,提公升檢索效率
什麼的資訊能夠成為索引?
主鍵,唯一鍵,具有區分性的
主鍵和唯一鍵的區別 :
外來鍵:
索引的資料結構:
二叉查詢樹,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的講解下,我慢慢明白了,終於知道我是幹啥的了,就是完善優化他們寫的自動化測試程式,首先是要看懂他們寫的。按...