索引何時需要 何時不需要 何時失效

2022-05-01 08:39:09 字數 861 閱讀 8754

總結自:

前提:每次查詢都只能使用乙個索引

原因:比起全表掃瞄,分析兩個索引b+表更耗時

何時需要索引?

1、所查詢欄位是主鍵(主鍵可以認為是索引)

2、和其他表做連線查詢的字段

3、在where裡使用》、≥,=,<,≤,<>,is null和between等字段

4、不以萬用字元開始的like,如'aa%'

5、聚集函式max()、sum()等使用得字段

6、order by和group by的字段

何時不需要索引?

1、表記錄很少

2、資料重複且分布平均

3、經常插入、刪除、修改的表

4、text、image等資料量大的型別

5、特殊情況,有時mysql會估算此次查詢,全表掃瞄比使用索引更為省時,則不會使用索引

索引錯誤使用情形總結:

1、組合索引未使用最左字首,例如:組合索引(a,b),而查詢條件是where b="1"

2、like萬用字元在最左邊,例如:where a like '%aa'

3、在查詢條件中使用索引,order by裡也使用索引,例如:where a='1' order by b,因為每次查詢只會使用乙個索引,這裡只會使用a的索引

4、or會使得索引失效,例如:where a= 1 or b=2

特殊情況:若or兩邊的條件使用的字段一樣,索引依舊會有效,例如:where a=1 or a=2

5、如果列型別是字串,要使用引號。例如where a='china',否則索引失效(會進行型別轉換)

6、在索引列上的操作,函式(upper()等)、or、!=(<>)、not in等

何時需要PIC

華清遠見嵌入式學院 講師。pci 其實是我們在編譯動態庫的命令列引數,我們用這個引數標記,告訴gcc產生的 不要包含對函式和變數具體記憶體位置的引用,這是因為現在還無法知道使用該訊息 的應用程式會將它連線到哪一段記憶體位址空間。這樣編譯出的 o可以被用於建立共享鏈結庫。建立共享鏈結庫只需要用gcc的...

何時需要PIC

何時需要pic 華清遠見嵌入式學院講師。pci 其實是我們在編譯動態庫的命令列引數,我們用這個引數標記,告訴gcc產生的 不要包含對函式和變數具體記憶體位置的引用,這是因為現在還無法知道使用該訊息 的應用程式會將它連線到哪一段記憶體位址空間。這樣編譯出的 o可以被用於建立共享鏈結庫。建立共享鏈結庫只...

MySQL索引分類 何時情況下使用 何時失效

目錄分類 何時使用 何時不使用索引 何時失效 explain語句 mysql索引分為普通索引 唯一索引 主鍵索引 組合索引 全文索引。索引不會包含有null值的列,索引項可以為null 唯一索引 組合索引等 但是只要列中有null值就不會被包含在索引中。普通索引 create index index...