雜湊表,有序表,搜尋樹
雜湊表:mongodb,redis
有序表:有序陣列索引只適用於靜態儲存引擎
搜尋樹:innodbs等資料引擎
主鍵索引,普通索引
主鍵索引:節點值為主鍵,葉子節點裡儲存的是整行資料。所以主鍵索引在innodbs也稱為聚簇索引。所以乙個表就是乙個主鍵b+樹。
普通索引:節點儲存key-value的形式,key是普通索引字段值,value是主鍵。因此也被稱為二級索引。普通索引查到主鍵後,會再進入主鍵樹再查一次,這個過程叫做回表。因此要盡量使用主鍵來做查詢。
插入新資料:根據b+樹演算法,子節點的key都小於父節點,並且進行從小到大的排序,如果插入乙個新資料的索引值在在頁的中間,那麼需要挪動該值後的節點。這樣會導致插入效能變差。所以如果使用自增id,那麼每條新資料都是直接在頁後追加節點。
頁**:當一頁資料放不下時,就會申請新頁,然後挪一部分資料過去,這個過程叫頁**。如果刪除了一部分資料,引擎判斷頁的使用率下降,將會合併頁,可以認為是**過程的逆過程。
深入淺出索引(上)
我們都知道資料庫的索引是用來提公升檢索速度的,但是索引究竟內部是怎麼工作的呢,就來說說這個話題8 索引就像書的目錄一樣,幫助我們更快的查詢到我們需要的資料。索引的種類有很多種,接下來主要介紹三種常見,也比較簡單的資料結構,分別是雜湊表,有序陣列和搜尋樹。然後從使用的角度分析一下,三者的區別 雜湊表是...
04 深入淺出索引(上)
1.索引的作用 提高資料查詢效率,就像書的目錄一樣。2.常見索引模型 雜湊表 有序陣列 搜尋樹 3.雜湊表 鍵 值 key value 4.雜湊思路 把值放在陣列裡,用乙個雜湊函式把key換算成乙個確定的位置,然後把value放在陣列的這個位置 5.雜湊衝突的處理辦法 鍊錶 6.雜湊表適用場景 只有...
03 深入淺出索引上下
三種索引 全文索引,雜湊索引,b 樹索引 索引維護 頁 隨機插入,向右 索引的選擇 身份證id or 自增主鍵 效能 儲存。效能 身份證id,是隨機插入,頁 是中間 可能會造成一定的儲存浪費,次數頁比較多。但是自增主鍵,只有頁滿才會將新點 到下乙個頁,效率是最高的。儲存 乙個b 樹節點,儲存的身份證...