您好,登錄后才能下訂單哦!
本文主要給大家介紹mysql索引是否可以自動使用,文章內容都是筆者用心摘選和編輯的,具有一定的針對性,對大家的參考意義還是比較大的,下面跟筆者一起了解下mysql索引是否可以自動使用吧。
MYSQL在創建索引后對索引的使用方式分為兩種:其一,由數據庫的查詢優化器自動判斷是否使用索引;其二,用戶可在寫SQL語句時強制使用索引。
MYSQL在創建索引后對索引的使用方式分為兩種:
1 由數據庫的查詢優化器自動判斷是否使用索引;
2 用戶可在寫SQL語句時強制使用索引
下面就兩種索引使用方式進行說明
第一種,自動使用索引。
數據庫在收到查詢語句后會查看where語句后面的查詢條件,同時查看在表上面有哪些索引,然后根據查詢條件和索引進行匹配。
查詢條件和索引的匹配包括查詢字段與索引字段的匹配和查詢類型和索引類型的匹配。前者很好理解,就是查詢條件的屬性上要建有索引,后者則是說查詢條件必須能夠使用索引,比如等值判斷和范圍查詢可以使用B+樹索引,而hash索引只能適用于等值判斷。
在找到與查詢條件匹配的索引后,就是進行代價估計來決定是否使用索引,代價估計主要根據要訪問的就數量,一般來說如果通過索引訪問的記錄數量占全表記錄數量15%以上,則不會使用索引而是使用全表掃描,因為此時使用索引的代價更大。在大多數情況下使用索引是會提高效率的。
經過優化器的判斷,最終會決定是否使用索引
第二種,強制使用索引,主要是通過SQL語句實現的
select * from table force index(PRI) limit 2;(強制使用主鍵)
select * from table force index(ziduan1_index) limit 2;(強制使用索引"ziduan1_index")
select * from table force index(PRI,ziduan1_index) limit 2;(強制使用索引"PRI和ziduan1_index")
也可以禁止索引的使用
select * from table ignore index(PRI) limit 2;(禁止使用主鍵)
select * from table ignore index(ziduan1_index) limit 2;(禁止使用索引"ziduan1_index")
select * from table ignore index(PRI,ziduan1_index) limit 2;(禁止使用索引"PRI,ziduan1_index")
看完以上關于mysql索引是否可以自動使用,很多讀者朋友肯定多少有一定的了解,如需獲取更多的行業知識信息 ,可以持續關注我們的行業資訊欄目的。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。