索引是幫助mysql高效獲取資料的排好序的資料結構
1.二叉樹:資料大層級變高,io多
2.紅黑樹:插入和刪除需要維持平衡,資料量大了層級不可控
3.b-tree:節點中也有資料,每一次載入到記憶體中的資料變少
5.hash:對索引的key進行一次hash計算就可以定位除資料儲存的位置,很多時候hash索引(o(1))比b+tree索引效率要高,但是hash所有只能滿足"=","in"查詢,範圍查詢(o(n)),而且還有hash衝突的問題
myisam(非聚集索引)
非聚集索引:索引和資料分離
myisam索引檔案與索引和資料檔案是分離的(非聚集),磁碟中包括3個檔案,frm:表結構,myd:資料在磁碟中的位址,myi:資料索引,查詢時,先根據索引去myi檔案中去找到資料的位址,然後根據位址再去myd中找到data
innodb(聚集索引):檔案包括idb和frm
聚集索引:葉子節點包含了完整的資料記錄的索引,資料和索引在一起
答:必須有主鍵來建立b+tree,如果沒有,則會選擇一列唯一的資料自動建立索引,如果沒有唯一的一列資料,則會建立一列rowid來建立索引(隱藏列)。整型所占用空間少,使用自增插入元素不會破壞原來的結構(分頁和維護平衡),插入效率高
innodb二級索引(非主鍵索引):葉子節點存放的時資料和自增索引,非整型按字母順序排序
最左字首索引:聯合索引中存在,從左往右一一欄位比對,不能跳過第乙個欄位去根據其他字段進行查詢,否則不會用到索引造成全表掃瞄(排序是根據第乙個欄位去排序的,然後根據第二個字段排序...)
mysql索引 使用筆記 mysql索引筆記
mysql索引 一 索引的優缺點 優點 1.通過建立唯一索引,可以保證資料庫表中每一行的唯一性。2.可以大大加快查詢速度,這是建立索引的最主要原因 4.在使用分組和排序子句進行資料查詢時,也可以顯著減少查詢中分組和查詢的時間 缺點 1.建立索引和維護索引要耗費時間,並且隨著資料量的增加所耗費的時間也...
mysql索引筆記
型別 雜湊 雜湊演算法 原理 雜湊演算法 將各個資料重組成編號,查詢時將資料編號直接找到查詢到的值 優勢 一次性找到該值 劣勢 資料連續性差 中 編號 005 國 編號 006 人 編號 007 民 編號 008 如果查詢 中民 tree 二叉樹演算法 log2n 原理 當我查詢3時,此時4比3大走...
MySql筆記(索引)
索引能優化資料庫查詢效能,但索引也有代價 挑選索引應符合以下原則 為用於搜尋 排序或分組的列建立索引,爾對於用作輸出顯示的列 select的結果 則不用。也就是說,最好是那些出現在where子句,連線子句,或者出現在order by或group by子句中的列 考慮資料列基數 列的基數是指列中非重複...