單個謂詞過濾:
= 基數計算公式 :1/num_distinct*(num_rows-num_nulls),如果有直方圖,基數計算公式=(num_rows-num_nulls)*density
> 基數計算公式:(high_value-limit)/(high_value-low_value)*(num_rows-num_nulls)
>=基數計算公式:((high_value-limit)/(high_value-low_value)+1/num_distinct)*(num_rows-num_nulls) 因為有=,所以要加上=的選擇率,=的選擇率為1/num_distinct
< 基數計算公式:(limit-low_value)/(high_value-low_value)*(num_rows-num_nulls)
<=基數計算公式:((limit-low_value)/(high_value-low_value)+1/num_distinct)*(num_rows-num_nulls)
between ... and .... 的基數計算公式等價於 xxx<= high_limit ,xxxx>=low_limit
基數計算公式:((high_limit-low_limit)/(high_value-low_value)+2/num_distinct)*(num_rows-num_nulls)
low_limit< and < high_limit 基數計算公式:(high_limit-low_limit)/(high_value-low_value)*(num_rows-num_nulls)
low_limit<= and <high_limit 基數計算公式:(high_limit-low_limit)/(high_value-low_value)+1/num_distinct)*(num_rows-num_nulls)
雙謂詞,多謂詞
A AND B 選擇率計算公式=A選擇率*B選擇率
A OR B 選擇率計算公式=A+B-A AND B
NOT A 選擇率計算公式= 1- A選擇率
單個謂詞過濾:
= 基數計算公式 :1/num_distinct*(num_rows-num_nulls),如果有直方圖,基數計算公式=(num_rows-num_nulls)*density
> 基數計算公式:(high_value-limit)/(high_value-low_value)*(num_rows-num_nulls)
>=基數計算公式:((high_value-limit)/(high_value-low_value)+1/num_distinct)*(num_rows-num_nulls) 因為有=,所以要加上=的選擇率,=的選擇率為1/num_distinct
< 基數計算公式:(limit-low_value)/(high_value-low_value)*(num_rows-num_nulls)
<=基數計算公式:((limit-low_value)/(high_value-low_value)+1/num_distinct)*(num_rows-num_nulls)
between ... and .... 的基數計算公式等價於 xxx<= high_limit ,xxxx>=low_limit
基數計算公式:((high_limit-low_limit)/(high_value-low_value)+2/num_distinct)*(num_rows-num_nulls)
low_limit< and < high_limit 基數計算公式:(high_limit-low_limit)/(high_value-low_value)*(num_rows-num_nulls)
low_limit<= and <high_limit 基數計算公式:(high_limit-low_limit)/(high_value-low_value)+1/num_distinct)*(num_rows-num_nulls)
雙謂詞,多謂詞
A AND B 選擇率計算公式=A選擇率*B選擇率
A OR B 選擇率計算公式=A+B-A AND B
NOT A 選擇率計算公式= 1- A選擇率