
倒數第二個不懂,求解釋,謝謝
uj5u.com熱心網友回復:
b>10 , b like 'xxxx'% 是一個范圍, 不是具體的值, 接在后面的都用不了索引uj5u.com熱心網友回復:
既然是面試題,你應該直接問一下你的面試官照我看來,如果沒有進一步的限制條件或考核目的,那么所有的情況都能用索引的
如你的倒數第2個,如果單從檢索效率來講索引的使用:
先按照他的說法能成立的情況來理解, c 不能用索引:
難道判斷 c 成立的條件還要關聯原表去去一次資料?那樣的效率比直接在索引上判斷效率差吧?你可能會說反正也要關聯原表取資料,但我也可以說,你沒有給查詢列,如果查詢列不需要關聯原表呢?
就算 c 有索引,你又如何確保 ab 條件直接索引 + c 條件走索引 再并集的結果就一定比 abc 索引效率高?比如 a,b能過濾大量資料,c不能過濾資料,很顯然分開走效率會列差
-----------------------
所以最終的結論是,你應該問面試官,看他的考核目的
uj5u.com熱心網友回復:
從表面上看都可以用到索引的,但具體還是要結合應用場景的。uj5u.com熱心網友回復:
mysql的聯合索引的特點決定的啊聯合索引最左前綴匹配原則是非常重要的原則,mysql會一直向右匹配直到遇到范圍查詢(>、<、between、like)就停止匹配,比如a = 1 and b = 2 and c > 3 and d = 4 如果建立(a,b,c,d)順序的索引,d是用不到索引的,如果建立(a,b,d,c)的索引則都可以用到
uj5u.com熱心網友回復:
這個應該就是考索引的最左前綴匹配原則吧,只是看答題人是否理解。2樓、3樓都太認真了吧。。。
uj5u.com熱心網友回復:
你確定這樣的正確的?有什么依據嗎?轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/96664.html
標籤:MySQL
下一篇:SQL 2008 不顯示結果欄
