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

要想统计所有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后的用户?

转载于:https://www.cnblogs.com/gczr/p/7358813.html

Bitmap算法应用实例(转)相关推荐

  1. python如何调用文件进行换位加密_python 换位密码算法的实例详解

    python 换位密码算法的实例详解 一前言: 换位密码基本原理:先把明文按照固定长度进行分组,然后对每一组的字符进行换位操作,从而实现加密.例如,字符串"Error should neve ...

  2. 曼哈顿距离java实现_基于javascript实现获取最短路径算法代码实例

    这篇文章主要介绍了基于javascript实现获取最短路径算法代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 代码如下 //A算法 自动寻路 ...

  3. python分割数字_对python数据切割归并算法的实例讲解

    当一个 .txt 文件的数据过于庞大,此时想要对数据进行排序就需要先将数据进行切割,然后通过归并排序,最终实现对整体数据的排序.要实现这个过程我们需要进行以下几步:获取总数据行数:根据行数按照自己的需 ...

  4. BitMap算法应用:Redis队列滤重优化

    工作中有用到Redis滤重队列. 原来的方法如下: 方法一 为了保证操作原子性,使用Redis执行Lua脚本. 在脚本中的逻辑是,如果队列不超过某个数值,进行一次lrem操作(队列使用list结构), ...

  5. OpenCV均值漂移meanshift algorithm算法的实例(附完整代码)

    OpenCV均值漂移meanshift algorithm算法的实例 OpenCV均值漂移meanshift algorithm算法的实例 OpenCV均值漂移meanshift algorithm算 ...

  6. OpenCV camshift算法的实例(附完整代码)

    OpenCV camshift算法的实例 OpenCV camshift算法的实例 OpenCV camshift算法的实例 #include <iostream> #include &l ...

  7. OpenCV密集光流算法的实例(附完整代码)

    OpenCV密集光流算法的实例 OpenCV密集光流算法的实例 OpenCV密集光流算法的实例 #include <iostream> #include <iomanip> # ...

  8. OpenCV watershed分水岭分割算法的实例(附完整代码)

    OpenCV watershed分水岭分割算法的实例 OpenCV watershed分水岭分割算法的实例 OpenCV watershed分水岭分割算法的实例 #include <opencv ...

  9. OpenCV支持向量机SVM和SDG算法的实例(附完整代码)

    OpenCV支持向量机SVM和SDG算法的实例 OpenCV支持向量机SVM和SDG算法的实例 OpenCV支持向量机SVM和SDG算法的实例 #include "opencv2/core. ...

  10. 【算法与数据结构专场】BitMap算法基本操作代码实现

    上篇我们讲了BitMap是如何对数据进行存储的,没看过的可以看一下[算法与数据结构专场]BitMap算法介绍 这篇我们来讲一下BitMap这个数据结构的代码实现. 回顾下数据的存储原理 一个二进制位对 ...

最新文章

  1. K-means聚类自定义距离计算
  2. httpRuntime 一点经验---引
  3. 【转】shell pipe与输入输出重定向的区别
  4. 面试题12:打印1到最大的n位数
  5. 融合存储超越统一存储
  6. 编程修养 阅读笔记三
  7. vue2.0中的watch和计算属性computed
  8. 计算机组成原理—高速缓冲存储器
  9. JAVA集合继承关系图介绍和Collection接口深刻理解
  10. kafka学习七:kafka之集群篇
  11. java程序员从小工到专家成神之路(2020版)-持续更新中,附详细文章教程
  12. python怎么统计单词总数_python统计单词
  13. 2021年度济南职工医保门统定点医疗机构名单
  14. 【Pyecharts50例】自定义饼图标签/显示百分比
  15. Quartz 使用(二) — quartz.properties配置
  16. 计算机病毒的感染机制
  17. 计算机桌面背景滚动播出,哪个知道怎么设置壁纸滚动
  18. 【DP】AGC012 E Camel and Oases
  19. pyhton——字典、拷贝、集合、文件
  20. 吃惊不?违反劳动法,去哪儿网因让员工加班被罚!

热门文章

  1. Ribbon风格下,依然叫菜单或者菜单卡、菜单页
  2. VirtualBox 6.1.4的共享剪贴板确实有问题,6.1.0正常
  3. 气是能量的宏观运行的现象描述
  4. C语言中的宏之#define
  5. spark提交到yarn_Spark任务提交方式
  6. winform 实现qq代理_「设计模式」代理模式:神奇的代理模式,节省了我80%开发时间...
  7. oracle 判断最后一笔_美股道琼斯日线杀跌一笔结束,向上一笔的反弹顺理成章。又到金秋弯腰拾金时...
  8. mysql 定时器_MySQL定时器开启、调用实现代码
  9. cad vba 打开文件对话框_Excel VBA和文件夹-1.7通过对话框灵活选定文件夹并打开对应文件...
  10. java 菜单快捷键_Java为菜单栏添加快捷键