MySQL索引 組合索引,什麼時候使用索引?

2021-10-21 10:18:43 字數 651 閱讀 4130

表abc,建立組合索引(a,b,c) 語句

是否使用索引

使用情況

1where a=1 and b=2 and c=3;

是a,b,c

2where a=1 and b=2;

是a,b

3where a=1;是a

4where a=1 or b=2;

是(當只有 a,b,c列時,一般實際中不會出現這樣的情況)

a,b,c

5where a=1 or b=2;

否(還有其他字段,且查詢了這個列時)

6where a=1 and c=2;是a

7where a=3 and b>10 and c=7

是(範圍查詢阻斷索引)

a,b8

where a=3 and b like '%xx%' and c=7;是a

9where a in (1,2);

當乙個表中所有的列都是組合索引的時候,這是一種特殊的情況,正常情況下or是不會使用索引的

---------------------------------------------有時間會把具體的語句執行案例補充一下--------------------------------------------

MySql中什麼時候建立索引?

索引 index 是幫助mysql高效獲取資料的資料結構。所以說索引的本質是 資料結構。簡單理解就是 排好序的快速查詢資料的資料結構。一般來說,索引本身也很大,不可能全部儲存在記憶體中,所以通常以索引檔案的形式儲存在磁碟上。高效的檢索資料 通過索引列隊資料排序 更新表 增 刪 改 的同時也需要更新索...

MySQL索引在什麼時候失效

1.如果條件中有or,即使其中有條件帶索引也不會使用 這也是為什麼盡量少用or的原因 注意 要想使用or,又想讓索引生效,只能將or條件中的每個列都加上索引 2.對於多列索引,不是使用的第一部分,則不會使用索引 3.like查詢是以 開頭 4.如果列型別是字串,那一定要在條件中將資料使用引號引用起來...

什麼時候用到聯合索引

所以,我們在建立聯合索引的時候,一定要把最常用的列放在最左邊。比如下面的三條語句,能用到聯合索引嗎?1 使用兩個字段,可以用到聯合索引 explain select from user innodb where name 權亮 and phone 15204661800 2 使用左邊的name 字段...