-
索引概念、索引模型
索引其實是一種資料結構,能夠幫助我們快速的檢索資料庫中的資料
常見的MySQL主要有兩種結構:Hash索引和B+ Tree索引, InnoDB引擎,默認的是B+樹,
Hash索引和B+ Tree索引 優缺點:
哈希表是一種以key-value存盤資料的結構,所以多個資料在存盤關系上是完全沒有任何順序關系的, 所以,對于區間查詢是無法直接通過索引查詢的,就需要全表掃描,所以,哈希索引只適用于等值查詢的場景,
而B+ Tree是一種多路平衡查詢樹,所以他的節點是天然有序的(左子節點小于父節點、父節點小于右子節點),所以對于范圍查詢的時候不需要做全表掃描,
哈希索引沒辦法利用索引完成排序 哈希索引不支持多列聯合索引的最左匹配規則 如果有大量重復鍵值得情況下,哈希索引的效率會很低,因為存在哈希碰撞問題
-
聚簇索引、覆寫索引
索引B+ Tree的葉子節點存盤了整行資料的是主鍵索引,也被稱之為聚簇索引,
而索引B+ Tree的葉子節點存盤了主鍵的值的是非主鍵索引,也被稱之為非聚簇索引,
區別:聚簇索引查詢會更快,因為主鍵索引樹的葉子節點直接就是我們要查詢的整行資料了,而非主鍵索引的葉子節點是主鍵的值,查到主鍵的值以后,需要回表查詢多次
覆寫索引 :
指一個查詢陳述句的執行只用從索引中就能夠取得,不必從資料表中讀取,也可以稱之為實作了索引覆寫,
當一條查詢陳述句符合覆寫索引條件時,MySQL只需要通過索引就可以回傳查詢所需要的資料,這樣避免了查到索引后再回傳表操作,減少I/O提高效率,
-
聯合索引、最左前綴匹配
在創建多列索引時,我們根據業務需求,where子句中使用最頻繁的一列放在最左邊,因為MySQL索引查詢會遵循最左前綴匹配的原則,即最左優先,
在檢索資料時從聯合索引的最左邊開始匹配,所以當我們創建一個聯合索引的時候,如(key1,key2,key3),相當于創建了(key1)、(key1,key2)和(key1,key2,key3)三個索引,這就是最左匹配原則,
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/37850.html
標籤:大數據
上一篇:大資料才是未來,Oracle、SQL Server成昨榷訓花?
下一篇:禧云數芯大資料平臺技術白皮書
