CN110222048A - 序列生成方法、装置、计算机设备及存储介质 - Google Patents
序列生成方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN110222048A CN110222048A CN201910372968.XA CN201910372968A CN110222048A CN 110222048 A CN110222048 A CN 110222048A CN 201910372968 A CN201910372968 A CN 201910372968A CN 110222048 A CN110222048 A CN 110222048A
- Authority
- CN
- China
- Prior art keywords
- data
- sequence
- aiming field
- stored
- obtains
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种序列生成方法、装置、计算机设备及存储介质,所述方法包括:获取序列生成请求中的待存储数据;根据预设运算方式,将待存储数据转换成预设长度的目标字段;获取数据库服务器的实时压力值;根据实时压力值确定初始缓存的数量N,并分配N个初始缓存,其中,初始缓存中包括随机初始值,N为正整数;根据每个随机初始值的长度将目标字段分割成M个数据段,其中,数据段与初始缓存对应,M为正整数;将每个数据段与该数据段对应的初始缓存中的随机初始值进行按位运算,得到M个运算结果,并将M个运算结果进行拼接,得到目标序列。本发明的技术方案使得在数据表主键生成过程中,生成的主键节省了存储空间,提高了数据库查询性能。
Description
技术领域
本发明涉及信息处理领域,尤其涉及序列生成方法、装置、计算机设备及存储介质。
背景技术
在诸如Oracle、MySQL等关系型数据库中,数据表作为基本存储单元,用来存储数据记录。数据表中主要包括字段名称、字段类型,以及与字段对应的具体数值。其中,主键是一个用于唯一标识数据表中每一行数据记录的特殊字段,通过搜索主键值可以从数据表中快速查询到相应的数据记录。
一般而言,在数据表中每增加一条数据记录,数据库管理系统会自动生成一个主键值。例如,在Oracle数据库中,Oracle按照自带的序列生成方式随机生成一个长度为32个比特位的唯一序列值。
然而,主键作为数据表的一个特殊字段,其取值同样占用存储空间,因此,若主键值的长度越长,则其所占用的存储空间越大,进而影响数据库中一个索引块能够存储的索引数,从而导致在对查询性能要求严格的大型应用中,影响数据库的查询性能。
发明内容
本发明实施例提供一种序列生成方法、装置、计算机设备及存储介质,以解决数据表主键生成过程中,生成的主键浪费存储空间,影响数据库查询性能的问题。
一种序列生成方法,包括:
接收客户端发送的序列生成请求,获取所述序列生成请求中的待存储数据;
根据预设运算方式,将所述待存储数据转换成预设长度的目标字段;
获取数据库服务器的实时压力值;
根据所述实时压力值确定初始缓存的数量N,并分配N个所述初始缓存,其中,所述初始缓存中包括随机初始值,N为正整数;
按照每个所述随机初始值的长度,依次对所述目标字段进行分割,得到M个数据段,其中,所述数据段与所述初始缓存对应,M为正整数;
将每个所述数据段与该数据段对应的所述初始缓存中的所述随机初始值进行按位运算,得到M个运算结果,并将M个所述运算结果进行拼接,得到目标序列。
一种序列生成装置,包括:
接收模块,用于接收客户端发送的序列生成请求,获取所述序列生成请求中的待存储数据;
转换模块,用于根据预设运算方式,将所述待存储数据转换成预设长度的目标字段;
数值获取模块,用于获取数据库服务器的实时压力值;
分配模块,用于根据所述实时压力值确定初始缓存的数量N,并分配N个所述初始缓存,其中,所述初始缓存中包括随机初始值,N为正整数;
切分模块,用于按照每个所述随机初始值的长度,依次对所述目标字段进行分割,得到M个数据段,其中,所述数据段与所述初始缓存对应,M为正整数;
组合模块,用于将每个所述数据段与该数据段对应的所述初始缓存中的所述随机初始值进行按位运算,得到M个运算结果,并将M个所述运算结果进行拼接,得到目标序列。
一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述序列生成方法。
一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述序列生成方法。
上述序列生成方法、装置、计算机设备及存储介质,接收客户端发送的序列生成请求;按照预设运算方式,将序列生成请求中的待存储数据转换成预设长度的目标字段,即,自由确定代表主键索引的目标序列的长度,且使得目标序列统一成固定长度,有利于数据统计和排序的便利;根据数据库服务器的实时压力值确定初始缓存的数量,以及初始缓存中的初始值;即,根据数据库的实时运行状态,确定目标序列的存储空间大小,以节约存储空间;根据初始值的长度对目标字段进行切分,并将切分结果与初始值进行按位运算,将按位运算结果进行拼接,得到目标序列,即,通过数据库服务器实时压力值的不确定性,以及随机初始值的随机性,对目标字段作进一步切分合并,以增加目标序列的唯一性,避免出现重复的主键索引,从而提升数据库的查询性能。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例中序列生成方法的一应用环境示意图;
图2是本发明一实施例中序列生成方法的流程图;
图3是本发明一实施例中序列生成方法中步骤S2的流程图;
图4是本发明一实施例中序列生成方法中生成目标字段的另一流程图;
图5是本发明一实施例中序列生成方法中获取初始缓存的数量N的流程图;
图6是本发明一实施例中序列生成装置的示意图;
图7是本发明一实施例中计算机设备的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供的序列生成方法,可应用在如图1的应用环境中,其中,服务端是提供序列生成方法服务的服务器或服务器集群;数据库服务器运行数据库管理系统的服务器或服务器集群;客户端是用户为存取数据而使用的计算机终端设备,包括但不限于PC机、平板电脑、智能手机或其他智能终端设备;客户端与服务端之间通过网络连接,网络可以是有线网络或无线网络;服务端可以和数据库服务器分属于不同的物理主机,也可以属于同一物理主机;当服务端与数据库服务器分属于不同物理主机时,客户端分别与服务端和数据库服务器相连。本发明实施例提供的序列生成方法应用于服务端。
在一实施例中,如图2所示,提供了一种序列生成方法,其具体实现流程包括如下步骤:
S1:接收客户端发送的序列生成请求,获取序列生成请求中的待存储数据。
序列生成请求,即客户端有数据存储需求时,向服务端发送的数据请求。序列生成请求,伴随着数据记录的新增请求而发生,与新增的数据记录一一对应。例如,当客户端有新增一条数据记录的操作,则客户端随之生成一个序列生成请求。其中,新增数据记录的操作,与数据库新增记录的“insert”SQL语句对应。
待存储数据,是指客户端发送的,需要存储到数据库中的数据。例如,若客户端向数据库中存储学生的姓名、年龄、所在班级等,则姓名、年龄、以及所在班级的具体数值就是待存储数据。
具体地,序列生成请求包括序列生成请求标志位和待存储数据,序列生成请求标志位和待存储数据按先后顺序排列,组成字符信息;其中,序列生成请求标志位可以是一个代表序列生成请求的固定变量。客户端通过提交Web表单的方式向服务端提交序列生成请求,将代表序列生成请求的字符信息发送到服务端;与之相对应的,服务端检测到序列生成请求标志位之后,从序列生成请求中获取待存储数据。
S2:根据预设运算方式,将待存储数据转换成预设长度的目标字段。
预设长度的目标字段,是对待存储数据进行数据转换后,得到的二进制数据。其中,预设长度是对目标字段所占比特位数的限定。
预设长度可以由运维人员根据数据库存储空间的大小,或数据存储量的多少预先约定。例如,对于一些数据存储量小的应用,预设长度可以设为12位;对于一些数据存量大的应用,预设长度可以设为32位,等。
举例来说,一个目标字段可以表示为“100101000110”,其长度为12位,即从第一个值“1”到最后一个值“0”,共占12个比特位数。因此,目标字段的长度可以灵活设置,有利于节省存储空间;同时,目标字段的长度统一,有利于数据统计和排序的便利。
预设运算方式,是将待存储数据转换成预设长度的目标字段的具体实现方式。
具体地,服务端可以将待存储数据与一个预设锚值进行二进制的按位运算。其中,按位运算包括按位与、按位或、按位非、按位异或运算;预设锚值,是一个预先设置的二进制值,其长度与目标字段的长度相等。例如,一个预设长度为12位的锚值,可以表示为“010010111000”。
可以理解地,服务端将待存储数据转换成二进制数据后,二进制数据的长度或大于锚值的长度,或小于锚值的长度;对于长度小于锚值长度的情况,直接将其与锚值进行按位运算即可;对于长度大于锚值长度的情况,服务端可以舍去按位运算之后多余的位数,从而得到目标字段。
待存储数据代表了客户端的实时需求,根据待存储数据生成目标字段,有利于提高目标字段的唯一性,减少重复的概率。
S3:获取数据库服务器的实时压力值。
数据库服务器,是数据库管理系统所在的计算机设备。其中,数据库管理系统包括但不限于各种关系型或非关系型数据库,如MS-SQL、Oracle、MySQL、Sybase、DB2、Redis、MongodDB、Hbase等。
实时压力值,反映了数据库管理系统和数据库所在服务器的运行状态。
实时压力值包括但不限于,数据库服务器当前的连接数、缓冲池和索引块的实时运行状态等。
其中,数据库服务器的当前连接数,是指客户端访问数据库服务器时,建立的连接数量。一个客户端可以占用数据库服务器的一个或多个连接数。
缓冲池,是数据库服务器的一个内存存储区域。缓冲池包括多个大小相同的缓冲区。当客户端与数据库服务器之间建立连接后,服务器可以为连接分配缓冲区,并在该连接断开后释放缓冲区;缓存池用于提高数据库服务器的性能和速度。
索引块是数据库服务器中用于存储数据库索引的存储空间。
具体地,服务端可以通过调用预设的脚本检测数据库服务器的实时压力值,该脚本用于检测数据库服务器当前的连接数和缓冲池的实时运行状态的脚本文件,能够获取数据库服务器的最大连接数、正在使用的连接数、缓冲池的缓冲区数量、正在使用的缓冲区、索引块的存储空间大小和索引块已使用的空间大小等实时运行状态。
S4:根据实时压力值确定初始缓存的数量N,并分配N个初始缓存,其中,初始缓存中包括随机初始值,N为正整数。
初始缓存,即组成缓冲池的缓冲区。
随机初始值,即服务端在分配初始缓存后,在使用初始缓存之前,初始缓存中留存的数值。例如,随机初始值可以为二进制值“101”、“101111”、“111”等。
可以理解地,由于随机初始值与初始缓存有关,初始缓存的数量与实时压力值有关,因此,随机初始值具有随机性和不确定性,并且其随机性和不确定性要高于由伪随机函数所产生的随机数,从而增加最终生成的目标序列的唯一性,避免出现重复的主键索引。
具体地,服务端根据实时压力值确定初始缓存的数量时,若数据库服务器的负载越重,即,实时压力值中数据库服务器的当前连接数越大,或已使用缓冲区的数量越多,或已使用索引块的数量越大,则分配的初始缓存的数量越少;反之,若数据库服务器的负载越轻,则分配的初始缓存的数量越多。
S5:按照每个随机初始值的长度,依次对目标字段进行分割,得到M个数据段,其中,数据段与初始缓存对应,M为正整数。
随机初始值的长度,即随机初始值所占的比特位数。例如,若随机初始值为二进制“111”,则其所占3个比特位,也即长度为3。
依次对目标字段进行分割,具体可以从左到右对目标字段进行分割,或者从右到左对目标字段进行分割,此处不做限制。
具体地,由于N个随机初始值的总长度或者大于目标字段的长度,或者小于目标字段的长度,因此,服务端在对目标字段进行分割时,要保证分割后得到的M个数据段的总长度目标字段的长度相等,使得每个数据段均与一个初始缓存对应,但一个初始缓存可能与不同的数据段对应。即,对于N个随机初始值的总长度大于目标字段的长度的情况,服务端舍去超出目标字段长度的比特位;对于N个随机初始值的总长度小于目标字段的长度的情况,服务端使用随机初始值循环对目标字段进行分割,直到分割完目标字段为止。
举例来说,若目标字段为“110001100001”,三个随机初始值分别为“111”,“1000”和“101”,即三个随机初始值的总长度小于目标字段的长度,则服务端按照随机初始值“111”、“1000”和“101”的顺序,对目标字段从左到右进行循环分割,得到数据段为“110”、“0011”、“000”,以及剩余不够被随机初始值“111”完全分割、但与其对应的“01”;
若三个随机初始值分别为“111”,“1000”和“110111”,即三个随机初始值的总长度大于目标字段的长度,则服务端按照随机初始值“111”、“1000”和“110111”的顺序,依次对目标字段从左到右进行分割,其中,对于第三个随机初始值“110111”,以其前五位“11011”对目标字段进行分割即可,得到的数据段为“110”、“0011”,以及被随机初始值“110111”的前五位分割得到,并与其对应的“00001”。
S6:将每个数据段与该数据段对应的初始缓存中的随机初始值进行按位运算,得到M个运算结果,并将M个运算结果进行拼接,得到目标序列。
按位运算,包括按位与、按位或、按位非、按位异或运算。
具体地,仍以步骤S5中目标字段为“110001100001”为例,若三个随机初始值分别为“111”,“1000”和“101”,则对目标字段进行分割后得到的数据段分别为“110”、“0011”、“000”和“01”;服务端将四个数据段分别与随机初始值“111”,“1000”,“101”和“111”进行按位运算,并将运算结果进行拼接,得到目标序列。
在本实施例中,接收客户端发送的序列生成请求;按照预设运算方式,将序列生成请求中的待存储数据转换成预设长度的目标字段,即,自由确定代表主键索引的目标序列的长度,且使得目标序列统一成固定长度,有利于数据统计和排序的便利;根据数据库服务器的实时压力值确定初始缓存的数量,以及初始缓存中的初始值;即,根据数据库的实时运行状态,确定目标序列的存储空间大小,以节约存储空间;根据初始值的长度对目标字段进行切分,并将切分结果与初始值进行按位运算,将按位运算结果进行拼接,得到目标序列,即,通过数据库服务器实时压力值的不确定性,以及随机初始值的随机性,对目标字段作进一步切分合并,以增加目标序列的唯一性,避免出现重复的主键索引,从而提升数据库的查询性能。
进一步地,在一实施例中,如图3所示,针对步骤S2,即根据预设运算方式,将待存储数据转换成预设长度的目标字段,具体包括如下步骤:
S21:对待存储数据进行编码运算,得到基础数据。
在本实施例中,基础数据,即对待存储数据进行编码运算后得到的数据。编码运算,是指对待存储数据进行压缩处理,以节省待存储数据所占空间大小。编码运算使用的具体算法可以包括但不限于哈夫曼编码算法、LZW算法、或者MD5算法。
其中,哈夫曼编码算法,是一种基于可变字长的编码方式;LZW算法又叫“串表压缩算法”,是通过建立一个字符串表,用较短的代码来表示较长的字符串来实现压缩;MD5算法,即MD5Message-Digest Algorithm,消息摘要算法,是一种密码散列函数。
具体地,服务端可以先对待存储数据作哈夫曼编码压缩或LZW压缩,然后对压缩结果数据作MD5计算,得到基础数据。其中,哈夫曼编码压缩或LZW压缩减少了待存储数据所占的存储空间,MD5计算将压缩后的结果映射为所占空间更小的散列值。
S22:根据预设长度,对基础数据进行按位补齐,得到目标字段。
按位补齐,是指若基础数据的位长小于目标字段的预设长度,对基础数据进行充“0”或补“1”,使得基础数据的长度等于目标字段的预设长度。
具体地,若目标字段的预设长度为128位,基础数据的长度为68位,则服务端可以对基础数据从左到右按位补充“0”或“1”,或者,对基础数据从右到左按位补充“0”或“1”。
在本实施例中,服务端对待存储数据进行编码运算,压缩待存储数据所占的空间大小,将待存储数据转换为所占空间更小,重复概率更低的散列值,以此散列值作为基础数据;然后对基础数据进行按位补齐,得到目标字段,使得进一步增强目标字段所占空间的大小和唯一性。
进一步地,在一实施例中,如图4所示,在步骤S21之后,并且在步骤S22之前,即在对待存储数据进行编码运算,得到基础数据之后,并且在根据预设长度,对基础数据进行按位补齐,得到目标字段之前,具体包括如下步骤:
S23:随机生成与待存储数据相对应的标识信息。
随机生成的标识信息,用于和待存储数据结合,以得到随机性更大的目标字段。标识信息,可以包括但不限于大小写英文字符、阿拉伯数字或符号等。
具体地,服务端每收到一个序列生成请求,即可以通过预设随机函数生成一个标识信息。例如,一个标识信息可以表示为“ld4kf*3fc”。
S221:根据预设长度,将标识信息与基础数据进行拼接,得到目标字段。
具体地,服务端可以采用多种方式对标识信息与基础数据进行拼接,此处不做限制。
例如,将标识信息和基础数据按先后顺序拼接,如,若标识信息为“ld4kf*3fc”,基础数据为“kje2”,则服务端可以将标识信息添加到基础数据尾部,得到“kje2ld4kf*3fc”。
或者,服务端将标识信息和基础数据所包含的字符合起来后,打乱顺序,如“kjd4e2l*3fkfc”。
服务端将拼接后的数据转换成二进制数,然后按照预设长度进行补齐或截取,从而得到目标字段。即,若拼接后数据的长度大于预设长度,则舍去超出部分的位数;若拼接后数据的长度小于预设长度,则可以按位补齐,得到目标字段。
在本实施例中,服务端将随机生成的标识信息附加到待存储数据中,然后按照预设长度对标识信息与基础数据进行拼接,得到目标字段,进一步加强了目标字段的随机性和唯一性。
进一步地,在一实施例中,实时压力值包括数据库服务器的当前连接数和数据库服务器的最大连接数,针对步骤S4中“根据所述实时压力值确定初始缓存的数量N”,具体包括步骤:
S41:对最大连接数与当前连接数的比值进行取整运算,得到初始缓存的数量N。
当前连接数,是服务端在生成目标序列的过程中,客户端与部署在数据库服务器上的数据库管理系统之间建立的数据连接的数量。
数据库服务器的最大连接数,即部署在数据库服务器上的数据库管理系统所允许的数据连接的数量。
其中,数据连接,或称为数据库连接,是一种关键的、有限的数据库资源。当前连接数越多,则数据库服务器承受的数据交互压力越大;若当前连接数超过数据库服务器的最大连接数量时,新的数据连接请求将被加入到等待队列中,此时,数据库服务器的响应将变慢。即,当前连接数与最大连接数之间的比值关系,体现了数据库服务器的外部数据处理压力。
基于此,若当前连接数越多,则分配的初始缓存N将越小;反之,则分配的初始缓存N将越多。即,服务端根据最大连接数与当前连接数的比值关系,确定初始缓存的数量。
具体地,若最大连接数为100,当前连接数为29,则100除以29,并进行取整运算,初始缓存的数量等于3或者4。其中,取整运算可以采用四舍五入,或者向上、向下取整等,此处不做限制。
在本实施例中,服务端根据最大连接数与当前连接数的比值关系,计算得到初始缓存的数量,即考虑到客户端与数据库服务器之间数据连接的数量,对数据库服务器性能的影响,从而确定初始缓存的数量,进而间接影响随机初始值的随机性和不确定性。
进一步地,在一实施例中,实时压力值还包括索引块的存储空间大小和已使用索引块数量;针对步骤S41,即对最大连接数与当前连接数的比值进行取整运算,得到初始缓存的数量N,如图5所示,具体包括如下步骤:
S411:根据索引块的存储空间大小和已使用索引块数量,计算已使用存储空间比例。
索引块,是数据库服务器中用于存储索引的存储空间。
索引块的存储空间大小,即索引块所占的存储空间。
已使用索引块数量,即数据库服务器中已分配的索引块数量。
已使用存储空间比例,是指已使用索引块占数据库服务器上可用存储空间的比例。其中,数据库服务器上可用存储空间,可以是数据库服务器上数据库管理系统所能支配的存储空间;数据库服务器上可用存储空间可以预先设定,由服务端读取相应的配置文件,获得该值。
已使用存储空间比例,体现了数据库服务器内部剩余存储空间的状态。基于此,服务端可以根据已使用存储空间比例,确定初始缓存数量N,以节省存储空间,即,在数据库服务器有较多剩余存储空间时,可以分配相对多数量的初始缓存;反之,则分配较少数量的初始缓存。
具体地,服务端将索引块的存储空间大小乘以已使用索引块数量,再除以数据库服务器上可用存储空间,即可得到已使用存储空间比例。
S412:对最大连接数与当前连接数的比值和已使用存储空间比例的倒数进行求和,并将求和结果进行取整运算,得到初始缓存的数量N。
具体地,举例来说,若若最大连接数为100,当前连接数为29,已使用存储空间比例为1/10,初始缓存的数量为13或14,其中,取整运算,可以采用四舍五入,或者向上、向下取整等,此处不做限制。
在本实施例中,服务端先根据索引块的存储空间大小和已使用索引块数量,确定已使用存储空间比例;然后,结合已使用存储空间比例、最大连接数和当前连接数,计算得到初始缓存的数量,即,综合考虑了数据库服务器的外部数据处理压力,以及数据库服务器剩余存储空间的大小,合理确定初始缓存的数量,从而提高数据库服务器的响应性能。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
在一实施例中,提供一种序列生成装置,该序列生成装置与上述实施例中序列生成方法一一对应。如图6所示,该序列生成装置包括接收模块61、转换模块62、数值获取模块63、分配模块64、切分模块65和组合模块66。各功能模块详细说明如下:
接收模块61,用于接收客户端发送的序列生成请求,获取序列生成请求中的待存储数据;
转换模块62,用于根据预设运算方式,将待存储数据转换成预设长度的目标字段;
数值获取模块63,用于获取数据库服务器的实时压力值;
分配模块64,用于根据实时压力值确定初始缓存的数量N,并分配N个初始缓存,其中,初始缓存中包括随机初始值,N为正整数;
切分模块65,用于按照每个随机初始值的长度,依次对目标字段进行分割,得到M个数据段,其中,数据段与初始缓存对应,M为正整数;
组合模块66,用于将每个数据段与该数据段对应的初始缓存中的随机初始值进行按位运算,得到M个运算结果,并将M个运算结果进行拼接,得到目标序列。
进一步地,转换模块62,包括:
编码子模块621,用于对待存储数据进行编码运算,得到基础数据;
补齐子模块622,用于根据预设长度,对基础数据进行按位补齐,得到目标字段。
进一步地,转换模块62,还包括:
标识生成子模块623,随机生成与待存储数据相对应的标识信息;
补齐子模块622,包括:
拼接单元6221,用于根据预设长度,将标识信息与基础数据进行拼接,得到目标字段。
进一步地,实时压力值,包括:所述数据库服务器的当前连接数和所述数据库服务器的最大连接数;分配模块64包括:
初始缓存分配子模块641,用于对最大连接数与当前连接数的比值进行取整运算,得到初始缓存的数量N。
进一步地,实时压力值,还包括:索引块的存储空间大小和已使用索引块数量;初始缓存分配子模块641包括:
存储空间计算单元6411,用于根据索引块的存储空间大小和已使用索引块数量,计算已使用存储空间比例;
初始缓存数量计算单元6412,用于对最大连接数与当前连接数的比值和已使用存储空间比例的倒数进行求和,并将求和结果进行取整运算,得到初始缓存的数量N。
关于序列生成装置的具体限定可以参见上文中对于序列生成方法的限定,在此不再赘述。上述序列生成装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图7所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种序列生成方法。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述实施例中序列生成方法的步骤,例如图2所示的步骤S1至步骤S6。或者,处理器执行计算机程序时实现上述实施例中序列生成装置的各模块/单元的功能,例如图6所示模块61至模块66的功能。为避免重复,这里不再赘述。
在一实施例中,提供一计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例中序列生成方法,或者,该计算机程序被处理器执行时实现上述装置实施例中序列生成装置中各模块/单元的功能。为避免重复,这里不再赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本发明所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
Claims (10)
1.一种序列生成方法,其特征在于,所述序列生成方法包括:
接收客户端发送的序列生成请求,获取所述序列生成请求中的待存储数据;
根据预设运算方式,将所述待存储数据转换成预设长度的目标字段;
获取数据库服务器的实时压力值;
根据所述实时压力值确定初始缓存的数量N,并分配N个所述初始缓存,其中,所述初始缓存中包括随机初始值,N为正整数;
按照每个所述随机初始值的长度,依次对所述目标字段进行分割,得到M个数据段,其中,所述数据段与所述初始缓存对应,M为正整数;
将每个所述数据段与该数据段对应的所述初始缓存中的所述随机初始值进行按位运算,得到M个运算结果,并将M个所述运算结果进行拼接,得到目标序列。
2.如权利要求1所述的序列生成方法,其特征在于,所述根据预设运算方式,将所述待存储数据转换成预设长度的目标字段,包括:
对所述待存储数据进行编码运算,得到基础数据;
根据所述预设长度,对所述基础数据进行按位补齐,得到所述目标字段。
3.如权利要求2所述的序列生成方法,其特征在于,所述对所述待存储数据进行编码运算,得到基础数据之后,并且在所述根据所述预设长度,对所述基础数据进行按位补齐,得到所述目标字段之前,所述序列生成方法,还包括:
随机生成与所述待存储数据相对应的标识信息;
所述根据所述预设长度,对所述基础数据进行按位补齐,得到所述目标字段,包括:
根据所述预设长度,将所述标识信息与所述基础数据进行拼接,得到所述目标字段。
4.如权利要求1所述的序列生成方法,其特征在于,所述实时压力值包括所述数据库服务器的当前连接数和所述数据库服务器的最大连接数,所述根据所述实时压力值确定初始缓存的数量N,包括:
对所述最大连接数与所述当前连接数的比值进行取整运算,得到所述初始缓存的数量N。
5.如权利要求4所述的序列生成方法,其特征在于,所述实时压力值还包括索引块的存储空间大小和已使用索引块数量,所述对所述最大连接数与所述当前连接数的比值进行取整运算,得到所述初始缓存的数量N,还包括:
根据所述索引块的存储空间大小和所述已使用索引块数量,计算已使用存储空间比例;
对所述最大连接数与所述当前连接数的比值和所述已使用存储空间比例的倒数进行求和,并将求和结果进行取整运算,得到所述初始缓存的数量N。
6.一种序列生成装置,其特征在于,所述序列生成装置,包括:
接收模块,用于接收客户端发送的序列生成请求,获取所述序列生成请求中的待存储数据;
转换模块,用于根据预设运算方式,将所述待存储数据转换成预设长度的目标字段;
数值获取模块,用于获取数据库服务器的实时压力值;
分配模块,用于根据所述实时压力值确定初始缓存的数量N,并分配N个所述初始缓存,其中,所述初始缓存中包括随机初始值,N为正整数;
切分模块,用于按照每个所述随机初始值的长度,依次对所述目标字段进行分割,得到M个数据段,其中,所述数据段与所述初始缓存对应,M为正整数;
组合模块,用于将每个所述数据段与该数据段对应的所述初始缓存中的所述随机初始值进行按位运算,得到M个运算结果,并将M个所述运算结果进行拼接,得到目标序列。
7.如权利要求6所述的序列生成装置,其特征在于,所述转换模块,包括:
编码子模块,用于对所述待存储数据进行编码运算,得到基础数据;
补齐子模块,用于根据所述预设长度,对所述基础数据进行按位补齐,得到所述目标字段。
8.如权利要求6所述的序列生成装置,其特征在于,所述转换模块,还包括:
标识生成子模块,随机生成与所述待存储数据相对应的标识信息;
所述补齐子模块,包括:
拼接单元,用于根据所述预设长度,将所述标识信息与所述基础数据进行拼接,得到所述目标字段。
9.一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至5任一项所述序列生成方法。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述序列生成方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910372968.XA CN110222048B (zh) | 2019-05-06 | 2019-05-06 | 序列生成方法、装置、计算机设备及存储介质 |
PCT/CN2019/101928 WO2020224091A1 (zh) | 2019-05-06 | 2019-08-22 | 序列生成方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910372968.XA CN110222048B (zh) | 2019-05-06 | 2019-05-06 | 序列生成方法、装置、计算机设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110222048A true CN110222048A (zh) | 2019-09-10 |
CN110222048B CN110222048B (zh) | 2023-06-23 |
Family
ID=67820466
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910372968.XA Active CN110222048B (zh) | 2019-05-06 | 2019-05-06 | 序列生成方法、装置、计算机设备及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN110222048B (zh) |
WO (1) | WO2020224091A1 (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110825747A (zh) * | 2019-11-05 | 2020-02-21 | 政采云有限公司 | 一种信息存取方法、装置和介质 |
CN111125569A (zh) * | 2019-12-25 | 2020-05-08 | 北京同邦卓益科技有限公司 | 数据标识的生成方法及装置、电子设备及介质 |
CN111400308A (zh) * | 2020-02-21 | 2020-07-10 | 中国平安财产保险股份有限公司 | 缓存数据的处理方法、电子装置及可读存储介质 |
CN111611243A (zh) * | 2020-05-13 | 2020-09-01 | 第四范式(北京)技术有限公司 | 数据处理方法及装置 |
CN111813781A (zh) * | 2020-07-10 | 2020-10-23 | 金蝶软件(中国)有限公司 | 一种数据存储方法以及终端设备 |
CN112131243A (zh) * | 2020-08-13 | 2020-12-25 | 成都量子象云计算科技有限公司 | 数据处理方法、装置、计算机设备和存储介质 |
CN112256626A (zh) * | 2020-10-16 | 2021-01-22 | 北京声智科技有限公司 | 数据处理方法、装置、电子设备及计算机可读存储介质 |
CN112416947A (zh) * | 2020-12-09 | 2021-02-26 | 吉林师范大学 | 遥感影像数据库的保存处理方法及装置 |
CN112597164A (zh) * | 2020-12-26 | 2021-04-02 | 中国农业银行股份有限公司 | 一种标识分配方法及装置 |
CN112667596A (zh) * | 2019-10-16 | 2021-04-16 | 北京京东尚科信息技术有限公司 | 一种对多个逻辑数据类型字段的替代表示方法和装置 |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112948080B (zh) * | 2021-02-25 | 2024-03-15 | 北京金山云网络技术有限公司 | 数据处理方法、装置及电子设备 |
CN113157249B (zh) * | 2021-04-22 | 2023-09-08 | 北京奇艺世纪科技有限公司 | 标识号生成方法、装置、电子设备及存储介质 |
CN113254464B (zh) * | 2021-05-19 | 2023-12-05 | 北京沃东天骏信息技术有限公司 | 一种数据加载方法和装置 |
CN113467974B (zh) * | 2021-07-21 | 2024-04-05 | 上海南洋万邦软件技术有限公司 | 一种标识信息生成方法 |
CN113792095A (zh) * | 2021-08-31 | 2021-12-14 | 通号城市轨道交通技术有限公司 | 信号系统接口信息转换方法、装置、电子设备和存储介质 |
CN114143284B (zh) * | 2021-11-25 | 2024-06-21 | 奇安信科技集团股份有限公司 | 数据标识生成方法、装置、电子设备及存储介质 |
CN114490775A (zh) * | 2022-02-11 | 2022-05-13 | 广东美房智高机器人有限公司 | 一种机器人实时运行数据处理方法、装置、服务器及介质 |
CN115022658B (zh) * | 2022-05-30 | 2023-09-08 | 广州力加贺电子科技有限公司 | 适用于嵌入式的直播数据处理方法、装置、设备及介质 |
CN117539799B (zh) * | 2023-11-29 | 2024-07-05 | 沐曦集成电路(上海)有限公司 | 一种可配置Cache存储系统 |
CN118071107B (zh) * | 2024-04-11 | 2024-07-30 | 中国电子科技集团公司第二十九研究所 | 一种多芯片组件的经济生产批量计算方法及系统 |
CN118277283B (zh) * | 2024-06-04 | 2024-08-06 | 山东浪潮科学研究院有限公司 | 基于fpga的关系型数据库压力检测装置及方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106648446A (zh) * | 2015-10-30 | 2017-05-10 | 阿里巴巴集团控股有限公司 | 一种用于时序数据的存储方法、装置及电子设备 |
WO2017092470A1 (zh) * | 2015-12-01 | 2017-06-08 | 中兴通讯股份有限公司 | 数据存储方法和装置 |
US20170220938A1 (en) * | 2016-01-29 | 2017-08-03 | Splunk Inc. | Concurrently forecasting multiple time series |
WO2018121455A1 (zh) * | 2016-12-29 | 2018-07-05 | 华为技术有限公司 | 一种缓存数据处理方法、装置和存储控制器 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101140592A (zh) * | 2007-09-30 | 2008-03-12 | 华为技术有限公司 | 关键字存储、查找方法和设备 |
US8380737B2 (en) * | 2010-12-17 | 2013-02-19 | International Business Machines Corporation | Computing intersection of sets of numbers |
US10061562B2 (en) * | 2012-09-29 | 2018-08-28 | Pivotal Software, Inc. | Random number generator in a parallel processing database |
CN103020144B (zh) * | 2012-11-21 | 2015-11-18 | 用友汽车信息科技(上海)股份有限公司 | 文件管理系统和文件管理方法 |
CN109327444B (zh) * | 2014-03-27 | 2021-12-07 | 创新先进技术有限公司 | 一种账户信息的注册和认证方法及装置 |
CN106980488A (zh) * | 2017-03-14 | 2017-07-25 | 腾讯科技(深圳)有限公司 | 随机数生成方法及装置 |
-
2019
- 2019-05-06 CN CN201910372968.XA patent/CN110222048B/zh active Active
- 2019-08-22 WO PCT/CN2019/101928 patent/WO2020224091A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106648446A (zh) * | 2015-10-30 | 2017-05-10 | 阿里巴巴集团控股有限公司 | 一种用于时序数据的存储方法、装置及电子设备 |
WO2017092470A1 (zh) * | 2015-12-01 | 2017-06-08 | 中兴通讯股份有限公司 | 数据存储方法和装置 |
US20170220938A1 (en) * | 2016-01-29 | 2017-08-03 | Splunk Inc. | Concurrently forecasting multiple time series |
WO2018121455A1 (zh) * | 2016-12-29 | 2018-07-05 | 华为技术有限公司 | 一种缓存数据处理方法、装置和存储控制器 |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112667596A (zh) * | 2019-10-16 | 2021-04-16 | 北京京东尚科信息技术有限公司 | 一种对多个逻辑数据类型字段的替代表示方法和装置 |
CN110825747A (zh) * | 2019-11-05 | 2020-02-21 | 政采云有限公司 | 一种信息存取方法、装置和介质 |
CN110825747B (zh) * | 2019-11-05 | 2022-09-06 | 政采云有限公司 | 一种信息存取方法、装置和介质 |
CN111125569A (zh) * | 2019-12-25 | 2020-05-08 | 北京同邦卓益科技有限公司 | 数据标识的生成方法及装置、电子设备及介质 |
CN111400308A (zh) * | 2020-02-21 | 2020-07-10 | 中国平安财产保险股份有限公司 | 缓存数据的处理方法、电子装置及可读存储介质 |
CN111400308B (zh) * | 2020-02-21 | 2023-05-26 | 中国平安财产保险股份有限公司 | 缓存数据的处理方法、电子装置及可读存储介质 |
CN111611243A (zh) * | 2020-05-13 | 2020-09-01 | 第四范式(北京)技术有限公司 | 数据处理方法及装置 |
CN111611243B (zh) * | 2020-05-13 | 2023-06-13 | 第四范式(北京)技术有限公司 | 数据处理方法及装置 |
CN111813781A (zh) * | 2020-07-10 | 2020-10-23 | 金蝶软件(中国)有限公司 | 一种数据存储方法以及终端设备 |
CN112131243A (zh) * | 2020-08-13 | 2020-12-25 | 成都量子象云计算科技有限公司 | 数据处理方法、装置、计算机设备和存储介质 |
CN112256626A (zh) * | 2020-10-16 | 2021-01-22 | 北京声智科技有限公司 | 数据处理方法、装置、电子设备及计算机可读存储介质 |
CN112416947A (zh) * | 2020-12-09 | 2021-02-26 | 吉林师范大学 | 遥感影像数据库的保存处理方法及装置 |
CN112416947B (zh) * | 2020-12-09 | 2023-09-22 | 吉林师范大学 | 遥感影像数据库的保存处理方法及装置 |
CN112597164A (zh) * | 2020-12-26 | 2021-04-02 | 中国农业银行股份有限公司 | 一种标识分配方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110222048B (zh) | 2023-06-23 |
WO2020224091A1 (zh) | 2020-11-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110222048A (zh) | 序列生成方法、装置、计算机设备及存储介质 | |
Lemire et al. | Consistently faster and smaller compressed bitmaps with roaring | |
US10331641B2 (en) | Hash database configuration method and apparatus | |
US20130191523A1 (en) | Real-time analytics for large data sets | |
CN107562804B (zh) | 数据缓存服务系统及方法、终端 | |
CN109753306A (zh) | 一种预编译函数缓存引擎的大数据处理方法 | |
Esmaili et al. | The core storage primitive: Cross-object redundancy for efficient data repair & access in erasure coded storage | |
CN112785408A (zh) | 基于哈希的对账方法及装置 | |
CN106844288A (zh) | 一种随机字符串生成方法及装置 | |
CN110825706A (zh) | 一种数据压缩的方法和相关设备 | |
CN105302915A (zh) | 基于内存计算的高性能数据处理系统 | |
CN116610731B (zh) | 一种大数据分布式存储方法、装置、电子设备及存储介质 | |
CN111782346B (zh) | 基于同库模式的分布式事务全局id生成方法及装置 | |
Hu et al. | Memserve: Context caching for disaggregated llm serving with elastic memory pool | |
CN104268146A (zh) | 一种适合分析型应用的静态b+树索引方法 | |
CN116760661A (zh) | 数据存储方法、装置、计算机设备、存储介质和程序产品 | |
CN103442000B (zh) | Web缓存置换方法及装置、http代理服务器 | |
CN109951275A (zh) | 密钥生成方法、装置、计算机设备及存储介质 | |
CN111752954B (zh) | 一种大规模特征数据存储的方法及装置 | |
CN115221361A (zh) | 一种基于属性图模型存储和编码图数据的方法 | |
CN112925834B (zh) | 数据导入的方法和装置 | |
WO2021174515A1 (en) | Systems and methods for data storage in the expansion of object-based storage systems | |
CN113127717A (zh) | 一种密钥检索方法和系统 | |
CN105930521A (zh) | 一种数据库管理装置和方法 | |
CN114185896B (zh) | 数据处理方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |