比如,有一條陳述句
陳述句一:
select id , name , sex from table_name where ( ( sex =1 and (name like '張%' )) or ( sex =0 and (name like '李%' )) )
陳述句二:
select id , name , sex from table_name where ( ( (name like '張%' ) and sex =1 ) or ( (name like '李%' ) and sex =0 ) )
疑問,當 構造 where 陳述句時 sex 和 name 順序位置 有影響嗎?
比如,( sex =0 and (name like '李%' )) , 如果 全表 的sex欄位值為 1 ,那么 mysql 是不是 不會 對 (name like '李%' ) 進行查詢?
還是 sex 和 name 都會進入查詢流程?
uj5u.com熱心網友回復:
sex還是name,看mysql最終走哪個索引,比如sex索引掃描行數比name索引少,那么mysql會用sex索引,如果記錄為0自然不用比較name。如果都沒建索引,那么掃描全表,每一行都要做條件匹配,到底是走先走sex還是name不好說,但效率上沒啥區別
uj5u.com熱心網友回復:
1、沒影響;
2、可能,包括 (name like '李%' ) and sex =0 )寫法。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/23177.html
標籤:MySQL
