关于数据库查询工作,例如有如下数据库表

要想统计所有90后的程序员该怎么做呢?用一条求交集的SQL语句即可:

Select count(distinct Name) as 用户数 from table whare age = '90后' and Occupation = '程序员' ;

要想统计所有使用苹果手机或者00后的用户总合该怎么做?用一条求并集的SQL语句即可:

Select count(distinct Name) as 用户数 from table whare Phone = '苹果' or age = '00后' ;

可是如果后面查询条件有上千条呢?查询性能必然跟不上。Bitmap算法开始登场!

1. 建立用户名和用户ID的映射:

2. 让每一个标签存储包含此标签的所有用户ID,每一个标签都是一个独立的Bitmap。

3. 这样,实现用户的去重和查询统计,就变得一目了然:

Bitmap在做交集和并集运算的时候也有极大的便利性。

1. 如何查找使用苹果手机的程序员用户?

2. 如何查找所有男性或者00后的用户?

最新文章

  1. java System.out
  2. C#基础之程序集(一)
  3. base64加密解密文件
  4. java学习面向对象之继承
  5. MAVEN Scope使用
  6. js 获取浏览器内核
  7. DOM【介绍、HTML中的DOM、XML中的DOM】
  8. ping通windows下虚拟机上的linux系统
  9. vue2.0 — 移动端的输入框实时检索更新列表
  10. [源码分析]AbstractStringBuilder
  11. STM32 BOR/POR/PDR介绍
  12. POST 400 的一次遭遇
  13. Selenium简单回顾
  14. Windows 自动启动 bat
  15. C++Primer第五版——习题答案详解(十一)
  16. [20180801]insert导致死锁.txt
  17. random.sample函数
  18. delete,truncate 和 delete之间的区别
  19. fatal error C1010: unexpected end of file while looking for precompiled header directive
  20. LCS 最长公共子子串

热门文章

  1. ubuntu 安装xdebug
  2. 利用Fiddler,解密wireshark抓的HTTPS包
  3. TCP协议详解7层和4层解析(美团,阿里) 尤其是三次握手,四次挥手 具体发送的报文和状态都要掌握
  4. wpf拖拽
  5. P1483 序列变换
  6. SPOJ - PHRASES
  7. BZO4197 & 洛谷2150 & UOJ129:[NOI2015]寿司晚宴——题解
  8. HDOJ(HDU).2602 Bone Collector (DP 01背包)
  9. HDOJ.1789 Doing Homework again (贪心)
  10. Visual Studio 2010如何利用宏