數據的索引原理:
-
最左前綴原則
就是要考慮查詢字段的字段順序,只有遵守這個原則才能最大的提高使用效率
- mysql會從左到右匹配,直到遇到范圍查詢(>,<,between, like)就停止匹配,比如聯合索引(a,b,c,d)匹配a=1 and b=2 and c>2 and d=1,此時d字段是使用不到索引的功能的,如果這時索引的字段順序是(abdc),此時d就會應用聯合索引
- 如果判斷條件“=”,那么不會強調字段的順序,mysql的查詢優化器會自動識別形式:a=1 and c=2 and b=2字段順序a,b,c不做區別
-
聯合索引提高查詢效率的原理
MySQL會為InnoDB的每個表簡歷聚集索引,如果表有索引會建立二級索引。聚集索引以主鍵建立索引,如果沒有主鍵,以表中的唯一鍵建立,唯一鍵也會以隱式的創建一個字增的列來建立,聚集索引和二級索引都是一個B+樹,B+樹是數據按照一定順序存在葉子節點且每頁數據相連。