2014-12-03 99 views
1

假設我有一個數據庫名稱字段的索引。我記得讀,如果我做的:如果mysql使用下劃線,它仍然會使用我的索引

where name like 'Jon%',它仍然會使用索引,但是 如果我做

where name like '%Jon%'話,就不會使用索引,因此導致全表掃描。
如果我使用

where name like '__Jon%'可以在使用索引,或是否必須使用全掃描,因此下劃線是一樣糟糕的響應時間百分號?

+0

只是做了一些描述在一些測試查詢的,它在我看來,_是效率不高於%。 – 2014-12-03 17:38:48

+2

[文檔說_wildcard字符_](http://dev.mysql.com/doc/refman/5.0/en/mysql-indexes.html),我認爲'_'作爲通配符,而不僅僅是'%' ''_如果LIKE的參數是一個不以通配符開頭的常量字符串,那麼該索引也可用於LIKE比較。「 – 2014-12-03 17:44:12

+0

如果您已完成查詢,您應該可以自由發佈自己的答案'EXPLAIN以驗證索引沒有被使用,連同MySQL鏈接的文檔文字。 – 2014-12-03 17:50:31

回答

相關問題