Cardinality:
優化器在計算成本的時候,需要從統計信息中取得數據,然后去估計每一步操作所涉及的行數,叫做Cardinality。
比如,一張表T有1000行數據,列COL1上沒有直方圖,沒有空值,並且不重復的值(distinct value)有500個。那么,在使用條件“WHERE COL1=<VALUE>”去訪問表的時候,優化器會假設數據均勻分布,它估計出會有1000/500=2行被選出來,2就是這步操作的Cardinality。
通常情況下,Cardinality越准確,生成的執行計划就會越高效。
在模糊查詢時where like '%%' 時用Cardinality(t,80),在執行計划中對t表估算行數為80行,降低邏輯讀。