A LINEAR-TIME PROBABILISTIC COUNTING ALGORITHM FOR DATABASE APPLICATIONS
A LINEAR-TIME PROBABILISTIC COUNTING ALGORITHM FOR DATABASE APPLICATIONS
复制标题
DOI:
10.1145/78922.78925
复制
发表时间:
1990-06-01
影响因子:
1.8
通讯作者:
TAYLOR, HM
中科院分区:
文献类型:
--
作者:
WHANG, KY;VANDERZANDEN, BT;TAYLOR, HM
We present a probabilistic algorithm for counting the number of unique values in the presence of duplicates. This algorithm hasO(q) time complexity, whereqis the number of values including duplicates, and produces an estimation with an arbitrary accuracy prespecified by the user using only a small amount of space. Traditionally, accurate counts of unique values were obtained by sorting, which hasO(qlogq) time complexity. Our technique, calledlinear counting, is based on hashing. We present a comprehensive theoretical and experimental analysis of linear counting. The analysis reveals an interesting result: A load factor (number of unique values/hash table size) much larger than 1.0 (e.g., 12) can be used for accurate estimation (e.g., 1% of error). We present this technique with two important applications to database problems: namely, (1) obtaining the column cardinality (the number of unique values in a column of a relation) and (2) obtaining the join selectivity (the number of unique values in the join column resulting from an unconditional join divided by the number of unique join column values in the relation to he joined). These two parameters are important statistics that are used in relational query optimization and physical database design.