Foundationপ্রথম নীতি থেকে
LEVEL 8 · Database Systems

Cardinality Estimation

কার্ডিনালিটি এস্টিমেশন

Plan-এর প্রতিটা node-এ ফল কত row হবে তার অনুমান — cost model-এর ইনপুট, planner-ভুলের মূল উৎস।

also: row-estimation, selectivity-estimation

Statistics থেকে selectivity:

SELECT attname, n_distinct, most_common_vals, most_common_freqs,
       correlation
FROM pg_stats WHERE tablename = 'orders' AND attname = 'status';
  • Equality on MCV: stored frequency; range: histogram bucket ভাগ; else 1/n_distinct
  • Independence assumption: A AND B = sel(A) × sel(B) — correlated column-এ ভয়ংকর ভুল; সমাধান extended statistics (CREATE STATISTICS)
  • Error compounds: join chain-এ প্রতি node-এর ভুল গুণ হতে গুণ হয়

EXPLAIN ANALYZE-এ estimated vs actual rows-এর gap-ই estimation-এর রোগনির্ণয় — ratio বড় মানে statistics মিথ্যা বলছে।