[英]using non index with composite index
我有問題是否有3列(名字,姓氏,地址)的表作為字符串/ varchar(255)
我有2列的復合my_idx
CREATE INDEX my_idx ON my_table (firstname,lastname)
如果我使用sql,它將使用我定義的索引嗎?
select * from my_table where address="zzz" and firstname="xxxx" and lastname="yyyy"
還是應該使用索引列作為最左邊的條件
select * from my_table where firstname="xxxx" and lastname="yyyy" and address="zzz"
謝謝
首先:如果在查詢中添加關鍵字“ EXPLAIN”,它將打印出所有可能使用的索引以及MySQL選擇的索引。 據我了解,是的,它將使用索引。 查詢中字段的順序無關。
重要的是索引中的順序,但前提是您沒有在查詢中提供所有字段(或對值應用函數或對其余字符串使用例如like運算符)。 例如,如果僅查詢lastname
,則不能使用索引。 如果僅查詢firstname
,則將使用索引。 如果您查詢firstname
和address
,將使用索引,依此類推...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.