[发明专利]整数数据的存储方法、装置及存储介质有效
申请号: | 202110177676.8 | 申请日: | 2021-02-09 |
公开(公告)号: | CN112527951B | 公开(公告)日: | 2021-05-11 |
发明(设计)人: | 胡俊飞 | 申请(专利权)人: | 北京微步在线科技有限公司 |
主分类号: | G06F16/31 | 分类号: | G06F16/31 |
代理公司: | 北京金信知识产权代理有限公司 11225 | 代理人: | 喻嵘 |
地址: | 100080 北京市*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 整数 数据 存储 方法 装置 介质 | ||
本申请公开了一种整数数据的存储方法、装置及存储介质,用于数据库中的整数数据存储。方法包括:接收输入到数据库的整数数据;将接收的整数数据转换为字节数组,在字节数组的第1个字节中,第1位表示整数数据属于非负整数或负整数,之后的位数用来编码补字节长度,补字节长度结束之后的位数则为整数数据的最高几位,字节数组的长度等于第1个字节中的补字节长度加1,整数数据的绝对值由补值和差值相加组成;将转换为字节数组的整数数据存入数据库中。本申请既可以实现以变长字节数组存储整数数据,又可以实现直接基于字节数组来比较相同符号下的整数数据大小,且字节数组的字节长度不受限制。
技术领域
本申请涉及数据存储领域,特别是涉及一种整数数据的存储方法、装置及存储介质。
背景技术
目前,NoSQL数据库中,如HBase、RocksDB、LevelDB等底层都是主要支持字节数组的数据格式,其他数据类型需要转换为字节数组再进行存储。对于整数,一般是按整数类型转换为固定长度的字节数组,比如整型(Integer)转换为4个字节的数组,而长整型(Long)转换为8个字节的数组。
转换为固定长度字节数组可以实现通过直接对字节数组的比较来比较整数的大小,不需要将值字节数组提前转换为整数。但是,很多时候由于不确定整数是否超过4个字节(即最大值4294967295),又需要直接比较的情况下,会统一采用长整型,即8个字节来存储整数,在整数值大部分比较小的情况下,会出现占用空间浪费的情况。
在一些数据库或者存储引擎中,通过将整数最低到高每7位编码到一个字节的后7位里,同时以该字节的首位是否置为1来区分该字节是否最后一个字节。这种编码方式既实现了变长字节存储,又实现了根据字节特征识别整数编码边界的作用,即根据字节最高位来判断字节数组中编码为某一个整数的字节长度,这种场景适用于将整数与其他值编码到一起的场景。但这种编码方式无法实现按字节数组直接对整数进行排序。
因此,亟待设计一种方案将整数数据转换为字节数组,使得根据字节数组首字节即可知道整数所占用的字节长度,并可以直接按字节数组对整数大小进行排序。
发明内容
基于变长编码、字节数组序排序、整数编码边界等多个需求进行分析,本发明设计了一种编码方式,该编码方式支持变长编码,最小长度只需要1个字节;支持字节数组序排序,根据对字节数组进行排序比较,即可实现对相同符号内所编码整数的比较;支持整数编码边界,根据字节数组首字节即可知道整数所占用的字节长度范围;支持基本编码方式和扩展编码方式,基本编码方式有最大值限制,而扩展编码方式则支持更多位数的整数。这种编码方式在一些常用场景下,尤其是大部分数值绝对值比较小的场景下,既能达到占用较小存储空间的目标,又能实现直接基于数组比较数值大小的功能。
第一方面,本申请设计了一种整数数据的存储方法,用于数据库中的整数数据存储,其特征在于:接收输入到数据库的整数数据;将接收的所述整数数据转换为字节数组,在所述字节数组的第1个字节中,第1位表示所述整数数据属于非负整数或负整数,之后的位数用来编码补字节长度,所述补字节长度的编码方式为:位数从所述补字节占用的最高位开始计算,当出现位数值置0时,则为补字节长度结束的位置,其中所述补字节长度为从所述补字节占用的最高位开始到结束的位置,位值置1的位数,所述补字节长度结束之后的位数则为所述整数数据的最高几位,所述字节数组的长度等于所述第1个字节中的补字节长度加1,所述整数数据的绝对值由补值和差值相加组成,所述字节数组除第1个字节外,后续的字节与所述第1个字节中表示整数数据的最高几位一起组成所述整数的差值,所述补值根据所述补字节长度来决定,其中将所有整数数据对应的字节长度由小到大进行排序,每个字节长度的补值为上一个字节长度所表达的最大值加1,其中最短字节数组的长度为1个字节;将转换为字节数组的所述整数数据存入所述数据库中。
在一种可选的实施方式中,其进一步包括:当所述补字节长度超过7时,所述补字节长度编码所占的位数延续到所述字节数组的第1字节之后的字节中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京微步在线科技有限公司,未经北京微步在线科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110177676.8/2.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置