日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

什么是联合索引?

發布時間:2025/5/22 编程问答 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 什么是联合索引? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

是指對表上的多個列進行索引,聯合索引也是一棵B+樹,不同的是聯合索引的鍵值數量不是1,而是大于等于2.

最左匹配原則
假定上圖聯合索引的為(a,b)。聯合索引也是一棵B+樹,不同的是B+樹在對索引a排序的基礎上,對索引b排序。所以數據按照(1,1),(1,2)…順序排放。

對于selete * from table where a=XX and b=XX,顯然是可以使用(a,b)聯合索引的,

對于selete * from table where a=XX,也是可以使用(a,b)聯合索引的。因為在這兩種情況下,葉子節點中的數據都是有序的。

但是,對于b列的查詢,selete * from table where b=XX。則不可以使用這棵B+樹索引。可以發現葉子節點的b值為1,2,1,4,1,2。顯然不是有序的,因此不能使用(a,b)聯合索引。

By the way:selete * from table where b=XX and a=XX,也是可以使用到聯合索引的,你可能會有疑問,這條語句并不符合最左匹配原則。這是由于查詢優化器的存在,mysql查詢優化器會判斷糾正這條sql語句該以什么樣的順序執行效率最高,最后才生成真正的執行計劃。所以,當然是我們能盡量的利用到索引時的查詢順序效率最高咯,所以mysql查詢優化器會最終以這種順序進行查詢執行。

優化:在聯合索引中將選擇性最高的列放在索引最前面。

例如:在一個公司里以age 和gender為索引,顯然age要放在前面,因為性別就兩種選擇男或女,選擇性不如age。

總結

以上是生活随笔為你收集整理的什么是联合索引?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。