select * from table a where a = ? and b =? and c = ?
建立如下索引
A a,c建立復合索引
B b建立單獨索引
C c建立單獨索引
D b,c分別建立單獨索引
E b、c建立復合索引
請問那些選項能必用到索引
uj5u.com熱心網友回復:
理論上全部選項都有可能uj5u.com熱心網友回復:
那些是必定會的uj5u.com熱心網友回復:
這個得看資料分布情況及資料量了。如果只有幾條資料,就算都建上索引,估計也是走全表掃描的
uj5u.com熱心網友回復:
沒有必用,只能可能 。如果統計資訊不準確,可能都用不到。uj5u.com熱心網友回復:
資料量比較大,比如在1000w,統計資訊也準確,在之前重新收集過,這些前提條件下,那些會用到索引uj5u.com熱心網友回復:
select floor(count(distinct b)/count(*) *100) from a;用這個查下3個欄位的 可選擇性,越大越接近100 越適合建索引
uj5u.com熱心網友回復:
永遠不要說100%
uj5u.com熱心網友回復:
換種說法。。。哪種是應該會的,不要考慮資料量很小或者統計資訊什么的,按照理論來說。。。uj5u.com熱心網友回復:
不考慮統計資訊資料量那么多不行,這些就是理論,資料量資料分布是最容易影響CBO的因素,而實際上因為環境不同,比如統計資訊還有可能不準確,即使準確的情況下,COST計算公式可能還會出幺蛾子等等……更說不好了。
理論上說,你舉的幾個索引的例子,都有可能用到,也都有可能用不到。
uj5u.com熱心網友回復:
如果同一時間,只有一個索引存在,那么這些索引都會用到。
如果,存在著多個索引,參考 6 # 意見。
uj5u.com熱心網友回復:
沒有什么必定會用到索引的。轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/70764.html
標籤:開發
上一篇:資料庫優化方法?
下一篇:存盤程序記錄例外日志的功能
