MySQL何時使用索引 何時不使用索引

2021-08-26 01:43:50 字數 1164 閱讀 7272

mysql何時使用索引

對乙個鍵碼使用》, >=, =, <, <=, if null和between

select * from table_name where key_part1=1 and key_part2 > 5;

select * from table_name where key_part1 is null;

當使用不以萬用字元開始的like

select * from table_name where key_part1 like 'jani%'

在進行聯結時從另乙個表中提取行時

select * from t1,t2 where t1.col=t2.key_part

找出指定索引的max()或min()值

select min(key_part2),max(key_part2) from table_name where key_part1=10

乙個鍵碼的字首使用order by或group by

select * from foo order by key_part1,key_part2,key_part3

在所有用在查詢中的列是鍵碼的一部分時間

select key_part3 from table_name where key_part1=1

mysql何時不使用索引

如果mysql能估計出它將可能比掃瞄整張表還要快時,則不使用索引。例如如果key_part1均勻分布在1和100之間,下列查詢中使用索引就不是很好:

select * from table_name where key_part1 > 1 and key_part1 < 90

如果使用heap表且不用=搜尋所有鍵碼部分。

在heap表上使用order by。

如果不是用鍵碼第一部分

select * from table_name where key_part2=1

如果使用以乙個萬用字元開始的like

select * from table_name where key_part1 like '%jani%'

搜尋乙個索引而在另乙個索引上做order by

select * from table_name where key_part1 = # order by key2

論MySQL何時使用索引,何時不使用索引

論mysql何時使用索引,何時不使用索引 索引 使用索引可快速訪問資料庫表中的特定資訊。索引是對資料庫表中一列或多列的值進行排序的一種結構,例如 employee 表的姓 name 列。如果要按姓查詢特定職員,與必須搜尋表中的所有行相比,索引會幫助您更快地獲得該資訊。索引是乙個單獨的 物理的資料庫結...

論MySQL何時使用索引,何時不使用索引

索引 使用索引可快速訪問資料庫表中的特定資訊。索引是對資料庫表中一列或多列的值進行排序的一種結構,例如 employee 表的姓 name 列。如果要按姓查詢特定職員,與必須搜尋表中的所有行相比,索引會幫助您更快地獲得該資訊。索引是乙個單獨的 物理的資料庫結構,它是某個表中一列或若干列值的集合和相應...

論MySQL何時使用索引,何時不使用索引

索引 使用索引可快速訪問資料庫表中的特定資訊。索引是對資料庫表中一列或多列的值進行排序的一種結構,例如 employee 表的姓 name 列。如果要按姓查詢特定職員,與必須搜尋表中的所有行相比,索引會幫助您更快地獲得該資訊。索引是乙個單獨的 物理的資料庫結構,它是某個表中一列或若干列值的集合和相應...