
sql索引模型圖
索引:提高數(shù)據(jù)的查詢效率
問(wèn)題一: 二叉搜索樹更新和查詢的時(shí)間復(fù)雜度均為O(logN),那么為什么不用二叉搜索樹作為索引模型卻選擇了B+樹?
1.二叉樹效率高,但是樹高太高,每次指針查找大概率都是觸發(fā)隨機(jī)磁盤讀,頻繁的磁盤讀取使得效率變低;
2.N叉樹,把整棵樹的高度維持在很小范圍內(nèi),同時(shí)在內(nèi)存中緩存前面若干層的節(jié)點(diǎn),可以極大的降低訪問(wèn)磁盤的次數(shù),提高讀的效率;
問(wèn)題二: N叉樹的N值在mysql中可以被人工調(diào)整嘛?
1. 首先5.6以后可以通過(guò)控制page的大小間接控制;
2.計(jì)算方法,前綴索引,調(diào)整K大?。?/p>
有序數(shù)組:查詢效率高,更新效率低;
哈希表:將數(shù)據(jù)存在數(shù)組對(duì)應(yīng)得hash值的位置,解決hash沖突的方法是維護(hù)一個(gè)鏈表。
hash(key) ==> value 在數(shù)組中的位置