mysql組合索引

組合索引:最左優先原則

如:組合索引(col_a,col_b,col_c)

使用到索引的情況如下:

col_a = "some value"

col_a = "some value" and col_b = "some value"

col_a = "some value" and col_c = "some value"

col_a = "some value" and col_b = "some value" and col_c = "some value"

col_a = "some value" and col_c = "some value" and col_b = "some value"

col_b = "some value" and col_a = "some value" and col_c = "some value"

col_b = "some value" and col_c = "some value" and col_a = "some value"

col_c = "some value" and col_a = "some value" and col_b = "some value"

col_c = "some value" and col_b = "some value" and col_a = "some value"

未使用索引的情況

col_b = "some value"

col_c = "some value"

col_b = "some value" and col_c = "some value"

col_c = "some value" and col_b = "some value"

總結,組合索引從最左開始組合,只要包含第一列的查詢都會用到該組合索引

為什么組合索引遵循最左優先原則?

索引方法是Btree,樹狀的,搜索時需要從根節點出發,上層節點對應靠左的值,所以有最左優先原則。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。