[MySQL] mysql中bitmap的简单运用

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/10756.html

(0)
上一篇 2022-12-22
下一篇 2022-12-22

相关推荐

  • NOSQL入门「终于解决」

    NOSQL入门「终于解决」什么是NoSQL? NoSQL (Not Only SQL),指的是非关系型的数据库。是对不同于传统的关系型数据库的数据库管理系统的统称。 轻量、开源、不提供SQL功能的关系数据库。 NoSQL用于…

    2023-02-06
    164
  • MongoDB学习(三) — MongoDB Java入门「建议收藏」

    MongoDB学习(三) — MongoDB Java入门「建议收藏」1、搭建测试环境 步骤一:创建 maven 项目 父项目的pom文件

    2023-03-11
    150
  • 使用Pandas添加行

    使用Pandas添加行 Pandas是一个快速、灵活且易于使用的数据分析工具包,是Python数据分析中非常重要且广泛使用的一个库。本文将深入介绍在使用Pandas操作数据时,如何添加新行以及执行相关操作。

    2024-08-30
    22
  • 第六天MySQL_MySQL论坛

    第六天MySQL_MySQL论坛DDL语言库与表的管理(创建、修改、删除)、一些常见的数据类型(整形、浮点|定点、日期,字符)

    2023-02-26
    141
  • Python D字典:高效存储和查询

    Python D字典:高效存储和查询Python中的字典是一种无序的“键-值”(key-value)数据结构,D字典则是使用Python中的高效的哈希表技术实现的一种新型字典。使用D字典可以大大提高对键值对的存储和查询效率,是处理大量键值对时的一种优秀的数据类型。以下是D字典的基本使用方法:

    2024-03-22
    88
  • [MySQL]MySQL8.0的一些注意事项以及解决方案[通俗易懂]

    [MySQL]MySQL8.0的一些注意事项以及解决方案[通俗易懂]MySQL8.0 注意事项以及解决方案 1. MySQL8.0 修改大小写敏感配置 天坑MySQL8.0! 在安装后, 便无法通过修改配置文件,重启服务,或者执行sql来更改数据库配置, 要想配置的话

    2023-05-10
    145
  • Python数据类型:变量类型及其用途

    Python数据类型:变量类型及其用途Python 是一种解释性、面向对象、动态数据类型的开发语言。在 Python 中,数据类型是一个关键问题,是在编程时必须要考虑的重点。本篇文章将从多个方面对 Python 的数据类型做详细的阐述,其中包括数字类型、字符串类型、功能类型、布尔型以及特殊类型等。通过本文的学习,我们可以更深入的了解 Python 的数据类型及其应用场景,为我们在实际项目开发中的编程工作带来帮助。

    2024-02-20
    90
  • Python 中 NoneType 的含义及使用

    Python 中 NoneType 的含义及使用在 Python 中,NoneType 是一个非常重要和常见的数据类型。它表示一个不确定的、空的或者缺失的值,通常用于表示一个没有被初始化的变量或者一个函数没有返回值的情况。在本文中,我们将从多个方面对 Python 中 NoneType 的含义及使用进行详细的阐述。

    2024-01-27
    110

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注