一种实现高并发情况下减轻数据库压力的方法技术

技术编号:36695581 阅读:12 留言:0更新日期:2023-02-27 20:07
本发明专利技术涉及互联网数据处理技术领域,特别是一种基于单字段保存组合状态设计实现高并发情况下减轻数据库压力的方法。所述数据库为高并发状态,使用四位二进制数位替换标记或状态文本,由于字段单独建表,表运行服务器占用率较大,表需要和业务表关联,使用该设计方法只要在业务表中加一个很短的整型字段既可。该设计方法是一种简洁的设计、无字段冗余、节省存储空间、具有良好的可扩展性、查询效率高、无需维护多表关系。需维护多表关系。

【技术实现步骤摘要】
一种实现高并发情况下减轻数据库压力的方法


[0001]本专利技术涉及互联网数据处理
,特别是一种基于单字段保存组合状态设计实现高并发情况下减轻数据库压力的方法。

技术介绍

[0002]在实际的软件开发中,某项业务在实际使用过程中多出一些标记(状态),但数据库表可能会因为最初的表设计不能满足所用,为了标记某种状态需要重新增加字段,但是数据库中如果有几百万条真实的数据,往往改变表结构是很危险的操作。
[0003]如关于产品的状态字段的业务场景:需求V1.0; 产品有是否上架、是否删除的状态。之前的做法是产品表结构中定义两个字段:is_online、is_del,分别用1和0的值来判断是和否。
[0004]需求V2.0; 新增需求,产品要有是否置顶、是否热门的状态。因为之前的表结构设计,这时候,我们就要动表结构。
[0005]需求V3.0; 新增是否推荐的状态。
[0006]按照之前的设计该程序存在以下缺点:1.业务表可拓展性差,比如增加一种状态或类型,只能在数据库中,增加一个字段,这样项目改动较大。2.增加了数据字段的冗余。3.不能同时存储复合状态。4.需要维护多表关系无需维护多表关系,由于字段太多需要单独建表。

技术实现思路

[0007]面对市需求的变化,我们技术需要考虑,如何增强自身系统的可扩展性,减少成本、提高效率。为了克服上述现有技术中存在的问题,本专利技术的目的是提供一种基于单字段保存组合状态算法实现高并发情况下减轻数据库压力的方法。
[0008]本专利技术所采用的技术设计方案是:一种实现高并发情况下减轻数据库压力的方法,包括如下步骤:S1.在数据库中将业务中将标记或状态替换为二进制数位表示;S2.用四位二进制表示,每一个二进制位都可以表示一种状态;S3.通过Java的位运算,来提取或添加标记位,四位对应的组合状态有16个,16个状态与标记位一一对应;所述步骤S2中二进制数位其值分别是2的0次幂、1次幂、2次幂即2^n,值value=(int)log(N,2)。
[0009]所述数据库为高并发状态,使用四位二进制数位替换标记或状态文本。
[0010]本专利技术的有益效果:由于字段单独建表,表运行服务器占用率较大,表需要和业务表关联,使用该设计方法只要在业务表中加一个很短的整型字段既可。该设计方法是一种简洁的设计、无字段冗余、节省存储空间、具有良好的可扩展性、查询效率高、无需维护多表关系。与现有方法相比可以减少数据的压力,提高系统的高并发下系统的快速响应性能。
Bit。对应的二进制即”0000 0000”。
[0022]在软件设计阶段,将业务中将标记(状态)的数值看做是二进制位数表示,其值分别是2的0次幂、1次幂、2次幂即2^n,值value=(int)log(N,2)。
[0023]表1. 值代表二进制的位置对应不同的状态。
[0024]3.多状态的组合,二进制转数据库存储的值;表2. 组合状态多(标记)状态对应的值给每一个产品一个给定的值,这个值一定是2的n次方(n>=0);结合当前状态码添加一个状态码:当前状态码 || 要添加的状态码;拿到一个值为N,那么我们可以首先找到最大的2^n,确定2^n是一定有的,如果没有2^n,就不可能相加得到N。
[0025]表3. 业务扩展状态表4. 业务扩展后的组合状态多(标记)状态对应的值。
本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种实现高并发情况下减轻数据库压力的方法,其特征在于包括如下步骤:S1.在数据库中将业务中将标记或状态替换为二进制数位表示;S2.用四位二进制表示,每一个二进制位都可以表示一种状态;S3.通过Java的位运算,来提取或添加标记位,四位对应的组合状态有16个,16个状态与标记位一一对应。2.根据权利要求...

【专利技术属性】
技术研发人员:熊发明王龙王志鹏李元
申请(专利权)人:中电万维信息技术有限责任公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1