bitmap就是在一个二进制的数据中,每一个位代表一定的含义,这样最终只需要存一个整型数据,就可以解释出多个含义.

业务中有一个字段专门用来存储用户对某些功能的开启和关闭,如果是传统的思维,肯定是建一个字段来存0代表关闭,1代表开启,那么如果功能很多或者需要加功能开关,就需要不停的创建字段.

使用bitmap的思路就只需要一个字段就可以了,建一个entuserstatus字段,该字段的二进制表示中,从右到做数,从1开始数.比如第19位代表是否开始归档,那么就直接操作这一位的0和1就可以表示该用户是否开启归档功能.

email表的第19位,作为归档开启的位,1是开启 0是关闭;262144代表是第19位为1的十进制数

查询开启的

select email,enterpriseId from email where entuserstatus & 262144=262144;

开启归档

update email set entuserstatus = entuserstatus|262144 where id=670602 limit 1

关闭归档

update email set entuserstatus = entuserstatus^262144 where id=670602 limit 1

另一种形式

查询开启归档的

select id,email,enterpriseId,entuserstatus from email where entuserstatus>>18 & 1=1;

开启归档

update email set entuserstatus = entuserstatus|(1<<18)  where id=670602 limit 1

关闭归档

update email set entuserstatus = entuserstatus^(1<<18)  where id=670602 limit 1

异或(^)运算

异或运算通俗地讲就是一句话

同为假,异为真

所以它是这样的算法:

0&0=0,0&1=1,1&0=1,1&1=0

这就是微学网-程序员之家为你提供的"[MySQL] mysql中bitmap的简单运用"希望对你有所帮助.本文来自网络,转载请注明出处:http://www.weixuecn.cn/article/8488.html

mysql如何存储bitmap_[MySQL] mysql中bitmap的简单运用相关推荐

  1. mysql bitmap实现_[MySQL] mysql中bitmap的简单运用

    MySQL 数据库 [MySQL] mysql中bitmap的简单运用 bitmap就是在一个二进制的数据中,每一个位代表一定的含义,这样最终只需要存一个整型数据,就可以解释出多个含义. 业务中有一个 ...

  2. MySQL 数据存储和优化------MySQL架构原理 ---- (架构---索引---事务---锁---集群---性能---分库分表---实战---运维)持续更新

    Mysql架构体系全系列文章主目录(进不去说明还没写完)https://blog.csdn.net/grd_java/article/details/123033016 本文只是整个系列笔记的第一章: ...

  3. mysql double 存储_关于MYSQL中FLOAT和DOUBLE类型的存储-阿里云开发者社区

    关于MYSQL中FLOAT和DOUBLE类型的存储 重庆八怪 2016-04-12 844浏览量 简介: 关于MYSQL中FLOAT和DOUBLE类型的存储 其实在单精度和双精度浮点类型存储中其存储方 ...

  4. mysql的存储引擎种类,mysql 存储引擎,基本数据类型

    存储引擎 日常生活中文件格式有很多种,并且针对不同的文件格式会有对应不同存储方式和处理机制(txt,pdf, word, mp4...) 针对不同的数据应该有对应的不同的处理机制来存储 存储引擎就是不 ...

  5. php mysql blob存储图片_php mysql blob存储图片

    {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...

  6. mysql 索引类型 bitmap_理解数据库中的常见索引类型

    在数据库中,索引能加快数据库的查询速度.下面就来理解一些常见的索引类型: B-Tree Bitmap Clustered Non-unique unique 索引有很多种类型,可以为不同的场景提供更好 ...

  7. mysql改存储引擎教程_MySQL中修改数据表存储引擎的三种方法

    第一种方法:ALTER TABLE 将表从一个引擎修改为另一个引擎最简单的办法是使用ALTER TABLE语句,转换表的存储引擎会导致失去原引擎相关的所有特性. 例:将mytable的引擎修改为Inn ...

  8. mysql bitmap index_[MySQL] mysql中bitmap的简单运用

    bitmap就是在一个二进制的数据中,每一个位代表一定的含义,这样最终只需要存一个整型数据,就可以解释出多个含义. 业务中有一个字段专门用来存储用户对某些功能的开启和关闭,如果是传统的思维,肯定是建一 ...

  9. linux下修改mysql数据存储_linux 更改mysql 数据存储目录

    1.检查mysql数据库存放目录 mysql -u root -prootadmin #进入数据库 show variables like '%dir%'; #查看sql存储路径 (查看datadir ...

最新文章

  1. LeetCode简单题之最小操作次数使数组元素相等
  2. swing java管理系统_Java swing实现酒店管理系统
  3. 802.11ac/ax (wifi6)中的Beamforming技术介绍
  4. html 首行缩进2个汉字
  5. 利用C#线程窗口调试多线程程序
  6. 一些ASP.NET不能调试问题的解决办法!
  7. php $handle,laravel $kernel-handle 报错的解决办法_PHP开发框架教程
  8. 论文解读丨空洞卷积框架搜索
  9. .NET库和向后兼容的技巧——第3部分
  10. 【matlab】元胞数组(使用celldisp显示元胞数组)
  11. ansible 第二次练习
  12. UCOIII时间片轮转调度
  13. 【C++/OOP】(侯捷著) (转)
  14. centos7安装SVN以及eclipse安装svn
  15. CentOS7 安装Mldonkey(电驴)步骤
  16. 小草手把手教你 LabVIEW 串口仪器控制——VISA 串口配置
  17. 国标服务器GBServerPlatform对接海康摄像头的操作说明
  18. FFmpeg修改源码支持H265
  19. vs2015 无法启动程序 系统找不到指定的文件
  20. 乐鑫Esp32学习之旅11 入门 乐鑫esp-adf 音频框架开发,造一个蓝牙耳机,实现切换歌曲,获取歌曲信息等功能。(附带Demo)

热门文章

  1. 7种夏季人像暖色效果LR预设
  2. 书法软件 隐私声明、免责声明和使用条款
  3. 哈工大计算机系统大作业-程序人生-Hello’s P2P
  4. 详细判断浏览器运行环境
  5. 听力虐我千百遍,我待听力如初恋 之 爬取听力资源+音频整合(以雪莉桑德伯格哈佛大学2014毕业典礼演讲为例)
  6. python能写单片机程序_python能不能单片机编程
  7. photoshop(ps)换证件照背景色
  8. Base64编码解码小脚本
  9. 【简搜题】一个墙裂推荐的考试搜题网站
  10. python适应的领域_“Andrew说Python爬虫”百家号娱乐领域排行-哪个领域更适合新手作者?...