应用场景: 如网站每个链接的用户点击数
传统方法:
1.基于B-Tree的基数实现. 优点:查找,插入和内存之间非常平衡. 缺点:数据量特别巨大时,内存使用非常可观,而且不能方便的进行合并.
2.基于bitmap的基数实现. 优点:运算效率非常高,且可以合并. 缺点:使用的内存与基数的上限有关,内存使用和集合数量无关.
基于概率的基数统计:
1.Linear Counting: 需要内存仅为bitmap的1/10.空间复杂度:O(Nmax)
2.LogLog Counting:空间复杂度:O(log2(log2(Nmax))). 优点:使用内存小 缺点:基数较小时,误差变大
3.HyperLogLog Counting & Adaptive Counting . AC是LC和LLC的简单组合