CN109388636A - 业务数据插入数据库方法、装置、计算机设备及存储介质 - Google Patents
业务数据插入数据库方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN109388636A CN109388636A CN201710686770.XA CN201710686770A CN109388636A CN 109388636 A CN109388636 A CN 109388636A CN 201710686770 A CN201710686770 A CN 201710686770A CN 109388636 A CN109388636 A CN 109388636A
- Authority
- CN
- China
- Prior art keywords
- major key
- business datum
- data
- database
- sql
- 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.)
- Pending
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了业务数据插入数据库的方法、装置、计算机设备及存储介质,属于计算机技术领域,本发明的技术方案为:对业务数据进行主键识别,获取业务数据的主键值。将业务数据依据主键值进行排序。将排序后的业务数据依据数据库语法,拼接得到结构查询语句SQL数据。将SQL数据插入到数据库中,并且将插入的业务数据对应的主键值保存到数据库对应的主键索引树的空余叶子节点中。通过以上技术方案,本发明能够解决主键索引树在更新时所产生的索引叶子节点的分裂和数据移动问题,从根本上提高插入效率,提升数据加载速度。
Description
技术领域
本发明属于计算机技术领域,具体涉及一种业务数据插入数据库的方法、装置、计算机设备以及计算机可读存储介质。
背景技术
在互联网公司、电信运营商、银行等大型IT支撑系统中,经常会根据业务的需求对大批量数据排重。以重庆移动为例,每日GPRS话单量高达3亿条,在将话单入库的过程中,由于为了校验话单唯一性,避免重复处理相同的话单,因此在其中一个字段上建立主键,数据库会自动在主键字段上建立唯一索引,索引是对数据库表中一列或多列的值进行排序的一种结构,在对表插入数据过程中需要对主键索引进行维护,从而导致插入效率较低。
为提升系统吞吐量,目前主要有以下两种解决办法:
解决办法一:采用分批提交,通过控制每次提交的数据量减少操作数据库的次数,提高性能。该方法减少了提交时与数据库的交互次数,从而减少了由于频繁提交产生的在线日志物理写等待。但是由于数据每次插入的时候,主键索引树要随着索引列的变化进行同步更新,而索引叶子节点对应是有序值序列,因此索引树更新时,叶子节点就会进行分裂,而在新插入的值为随机值时,即处于某个叶子节点的中间值,该索引叶子块将根据此中间值分裂成两个块,从而两个块都为半满的结构,因此每次插入都会伴随索引叶子块的分裂及数据移动。因此通过该解决办法一虽然减少了操作数据库的次数,但是在每次数据插入时都要进行索引分裂,因此占用较多存储空间,吞吐量不高,从而无法提高数据加载速度。
解决办法二:是通过业务规则将主键表修改为分区表,减少每个分区数据的数量,打乱数据分布,再通过并行的方式插入。由于该方法将主键修改为范围分区,从而将维护全表的索引更改为维护单个分区的索引,即减少了索引树的大小,减少了插入数据时索引寻址时间。但是一方面由于业务规则限定,此类表不一定能修改为按范围进行分区,即使按照主键修改为范围分区,一定时间内所有数据可能无法按照预想进入不同的分区,而仍然进入同一个分区,还是会出现上述大量索引叶子块的分裂及数据移动,索引争用严重。
综上所述,无论是解决办法一还是解决办法二,均无法解决主键索引树在更新时所产生的索引叶子块的分裂和数据移动问题,因此无法从根本上提高插入效率和提升数据加载速度。
发明内容
有鉴于此,本发明提供了一种业务数据插入数据库的方法、装置、计算机设备及存储介质,能够解决主键索引树在更新时所产生的索引叶子节点的分裂和数据移动问题,从根本上提高插入效率,提升数据加载速度。
基于上述目的,本发明的技术方案为:
一方面,本发明实施例提供了一种业务数据插入数据库的方法,其特征在于,包括:
对业务数据进行主键识别,获取业务数据的主键值。
将业务数据依据主键值进行排序。
将排序后的业务数据依据数据库语法,拼接得到结构查询语句SQL数据。
将SQL数据插入到数据库中,并且将插入的业务数据对应的主键值保存到数据库对应的主键索引树的空余叶子节点中。
在第一方面的一个或多个实施例中,业务数据插入数据库的方法还包括:
将业务数据分组得到多个数据组。
将多个数据组中的每个数据组中的业务数据依据主键值进行排序。
将每个数据组中排序后的业务数据依据数据库语法,拼接得到结构查询语句SQL数据。
将多个数据组对应的SQL数据并行插入到数据库中。
在第一方面的一个或多个实施例中,数据库为关系型数据库。
在第一方面的一个或多个实施例中,对业务数据进行主键识别,获取业务数据的主键值,包括:
从业务数据中预先配备的配置文件中读取主键字段,并将主键字段的主键字段值作为业务数据的主键值。
在第一方面的一个或多个实施例中,方法还包括:
当业务数据中预先配备的配置文件中无主键字段时,从数据库中查询业务数据对应的主键字段,在配置文件中建立主键字段,并将业务数据对应的主键字段的主键字段值存入配置文件中建立的主键字段中。
在第一方面的一个或多个实施例中,将业务数据分组得到多个数据组,包括:
将业务数据依据预先配置的数据组数目和每组容量进行分组。
在第一方面的一个或多个实施例中,将SQL数据中排序后的业务数据依序插入到数据库中,并且将插入的业务数据对应的主键值保存到数据库对应的主键索引树的空余叶子节点中,包括:
将排序后的业务数据插入到数据库的数据空间中。
将数据空间中插入的业务数据的主键值保存至数据空间对应的叶子节点中。
若主键索引树的已有的叶子节点对应的数据空间已满,而SQL数据中还有未插入的业务数据,则在数据库中建立新数据空间用于插入未插入的业务数据,并在主键索引树中建立对应新数据空间的新叶子节点,新叶子节点用于保存新数据空间中插入的业务数据对应的主键值。
在第一方面的一个或多个实施例中,将SQL数据中排序后的业务数据依序插入到数据库中之后,还包括:
获取用于指示SQL数据是否插入成功的反馈数据。
若反馈数据指示SQL数据插入不成功,则对SQL数据中排序后的业务数据进行重新排序,直至反馈数据指示插入成功为止。
在第一方面的一个或多个实施例中,将业务数据依据主键值进行排序,包括步骤ii)-v):
i)将所有业务数据的主键值作为待排序区域。
ii)在待排序区域内选择一个主键值作为基准值。
iii)将小于基准值的主键值放置于基准值之前,大于基准值的主键值放置于基准值之后。
iv)将小于基准值的主键值作为第一再排序区域,将大于基准值的主键值作为第二再排序区域。
v)将第一再排序区域和第二再排序区域分别作为新的待排序区域。
当新的待排序区域中的主键值大于一个时,执行步骤ii)-v),直至待排序区域仅包括一个主键值,则获得排序后的主键值。
将业务数据依据排序后的主键值进行排序。
在第一方面的一个或多个实施例中,将业务数据分组得到多个数据组之后,还包括:当多个数据组中的每个数据组取满数据或者到达预定时间时,对每个数据组进行排序操作。
另一方面,本发明实施例还提供了一种业务数据插入数据库的装置,其特征在于,装置包括:
主键识别模块,用于对业务数据进行主键识别,获取业务数据的主键值。
数据排序模块,用于将业务数据依据主键值进行排序。
数据入库模块,用于将排序后的业务数据依据数据库语法,拼接得到结构查询语句SQL数据;将SQL数据依序插入到数据库中,并且将插入的业务数据对应的主键值保存到数据库对应的主键索引树的空余叶子节点中。
在该另一方面的一个或多个实施例中,装置还包括:
数据分组模块,用于将业务数据分组得到多个数据组;
数据排序模块,还用于将多个数据组中的每个数据组中的业务数据依据主键值进行排序。
数据入库模块,还用于将每个数据组中排序后的业务数据依据数据库语法,拼接得到结构查询语句SQL数据;数据入库模块还用于将多个数据组对应的SQL数据并行插入到数据库中。
另一方面,本发明实施例还提供了一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,处理器执行程序时实现以下步骤:
对业务数据进行主键识别,获取业务数据的主键值。
将业务数据依据主键值进行排序。
将排序后的业务数据依据数据库语法,拼接得到结构查询语句SQL数据。
将SQL数据插入到数据库中,并且将插入的业务数据对应的主键值保存到数据库对应的主键索引树的空余叶子节点中。
另一方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,计算机程序被处理器执行时实现以下步骤:
对业务数据进行主键识别,获取业务数据的主键值。
将业务数据依据主键值进行排序。
将排序后的业务数据依据数据库语法,拼接得到结构查询语句SQL数据。
将SQL数据插入到数据库中,并且将插入的业务数据对应的主键值保存到数据库对应的主键索引树的空余叶子节点中。
本发明提供了一种业务数据插入数据库的方法、装置、计算机设备及存储介质,对业务数据分组、排序后插入到数据库中,其中分组的方式减少了每个插入操作的数据量,提高了插入操作的效率;排序的方式则对于数据库的主键索引树更新产生音响,使得每个插入操作中主键索引树的更新不必再进行叶子节点的分裂和数据的移动,因此提高了数据的加载速度。
附图说明
通过阅读以下参照附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显,其中,相同或相似的附图标记表示相同或相似的特征。
图1为本发明的一个实施例所提供的业务数据插入数据库的方法的流程示意图;
图2为本发明的一个实施例所提供的对业务数据进行排序的排序方法流程示意图;
图3(a)为现有技术中未排序的业务数据插入数据库时主键索引树叶子节点的更新过程示意图;
图3(b)为本发明实施例中排序后的业务数据插入数据库时主键索引树叶子节点的更新过程示意图;
图4为本发明的一个实施例提供的业务数据插入数据库的装置的组成结构示意图;
图5为本发明的另一个实施例提供的业务数据插入数据库的装置的组成结构示意图。
具体实施方式
下面将详细描述本发明的各个方面的特征和示例性实施例。在下面的详细描述中,提出了许多具体细节,以便提供对本发明的全面理解。但是,对于本领域技术人员来说很明显的是,本发明可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本发明的示例来提供对本发明的更好的理解。本发明决不限于下面所提出的任何具体配置和算法,而是在不脱离本发明的精神的前提下覆盖了元素、部件和算法的任何修改、替换和改进。在附图和下面的描述中,没有示出公知的结构和技术,以便避免对本发明造成不必要的模糊。
针对现有的一些大型IT支撑系统的数据库中,特别是关系型数据库,当遇到一些大批量业务数据入库的情况时,若采用现有技术来实现业务数据的入库,则可能出现主键索引树在更新时所产生的索引叶子快的分裂和数据移动问题,因此无法从根本上提高插入效率和提升数据加载速度。
因此本发明提供了一种业务数据插入数据库的方法,能够解决主键索引树在更新时所产生的索引叶子快的分裂和数据移动问题,从根本上提高插入效率,提升数据加载速度。
本发明实施例主要针对关系型数据库,其他类型的数据库也适用。
本发明实施例所提供的方法,其流程如图1所示,主要包括如下步骤:
S1、对业务数据进行主键识别,获取业务数据的主键值。
该步骤S1是在获取了大批量的业务数据之后的处理,其中每个业务数据已知地配备有一个配置文件,配置文件中记载有对应业务数据的各种配置信息,配置文件中具有一个对应业务数据的主键字段,该主键字段中记载对应业务数据的主键值。因此在执行该步骤S1时,要对业务数据进行主键识别,具体的是要从业务数据的配置文件中的主键字段读取主键值。
同时,在具体实践过程中,还可能存在业务数据所配备的配置文件中并无主键字段的情况。在这种情况下,要获取业务数据的主键值则需要去数据库中读取。
数据库中一般预先配置有可能插入其中的业务数据的主键字段值,因此当业务数据本身的配置文件中无主键字段时,可以从数据库中查询业务数据对应的主键字段,在配置文件中建立主键字段,并将业务数据对应的主键字段的主键字段值存入配置文件中建立的主键字段中。
S2、将业务数据依据主键值进行排序。
在本步骤S2中,获取了每个业务数据中主键值之后,将业务数据依据主键值从小到大的顺序进行排序。
在具体的采用计算机语言实现该排序的过程中,可以采用冒泡法或者快速排序法等常用的数据排序方法对主键值进行排序,然后再依据主键值的排序顺序,对业务数据进行排序。
本发明实施例中采用如下方法对业务数据进行排序,具体的流程如图2所示:
S201、将所有业务数据的主键值作为待排序区域。
S202、在待排序区域内选择一个主键值作为基准值。
S203、将小于基准值的主键值放置于基准值之前,大于基准值的主键值放置于基准值之后。
S204、将小于基准值的主键值作为第一再排序区域,将大于基准值的主键值作为第二再排序区域。
S205、将第一再排序区域和第二再排序区域分别作为新的待排序区域;
S206、当新的待排序区域中的主键值大于一个时,执行步骤ii)-v),直至待排序区域仅包括一个主键值,则获得排序后的主键值。
S207、将业务数据依据排序后的主键值进行排序。
以上步骤可以采用计算机语言来实现。
S3、将排序后的业务数据依据数据库语法,拼接得到结构查询语句SQL数据;
S4、将SQL数据插入到数据库中,并且将插入的业务数据对应的主键值保存到数据库对应的主键索引树的空余叶子节点中。
对于数据库来说,为了实现对其中所存数据的检索,预先建立有一个主键索引树,该主键索引树中的每一个叶子节点均对应一定的数据空间,叶子节点中存储对应数据空间所存业务数据的主键值,其中叶子节点对应的是有序值的序列。在SQL数据插入的同时,也要对主键索引树中的叶子节点进行更新。现有的方法在进行主键索引树的更新时,由于其中业务数据并不是按照主键值顺序排序的,在这种情况下对业务数据进行插入时,要保证叶子节点序列的有序性,需要对叶子节点进行分裂和移动,这种叶子节点的分裂和移动会拖慢数据插入的效率不高,并拖慢数据加载速度。
而本发明实施例提供的方法,由于在步骤S2中对业务数据进行了排序,因此在本步骤S3中进行SQL数据插入的时候,其中的业务数据已经为顺序排序后的业务数据。SQL数据插入时,业务数据进入数据库中的数据空间,其主键值也按照顺序顺次保存到主键索引树的空余叶子节点中,这样可以大大减少叶子节点的分裂和移动,从而能够提高数据插入效率、提升数据加载速度。
且本发明实施例中,在将SQL数据中排序后的业务数据依序插入到数据库中,并且将插入的业务数据对应的主键值保存到数据库对应的主键索引树的空余叶子节点的过程具体包括:
将排序后的业务数据插入到数据库的数据空间中。
将数据空间中插入的业务数据的主键值保存至数据空间对应的叶子节点中,在保存过程中,可能存在主键索引树的已有的叶子节点对应的数据空间已满,则采用如下处理方式:
若主键索引树的已有的叶子节点对应的数据空间已满,而SQL数据中还有未插入的业务数据,则在数据库中建立新数据空间用于插入未插入的业务数据,并在主键索引树中建立对应新数据空间的新叶子节点,新叶子节点用于保存新数据空间中插入的业务数据对应的主键值。
下面本发明实施例将以一个具体的实例来说明步骤S3中的主键索引树叶子节点的更新过程,具体原理如图3(a)和(b)所示。
如图3(a)所示为现有技术中未排序的业务数据插入数据库时主键索引树叶子节点的更新过程,其中未排序的业务数据包括b1、b2、b3以及新数据new b4,主键索引树中的叶子节点包括A1和A2,其中每个叶子节点中可以存两个主键值,b1、b2、b3已经分别存入到叶子节点A1和A2中,在新数据new b4插入时,b4的主键值大小在b1和b2之间,因此b4要插入至b1之后,这样就必须要将b2和b3均后移,才能将b4插入到叶子节点A1中。
图3(b)所示为本发明实施例中排序后的业务数据插入数据库时主键索引树叶子节点的更新过程,其中排序后的业务数据包括B1、B2、B3以及新数据new B4,叶子节点依旧为A1和A2;主键索引树随着进行同步更新时,新插入的数据值B4要大于目前所有叶子节点的中存的主键值,此时如果最后一个叶子节点A2还有空间,新插入的值B4直接保存在该叶子节点A2。
如果数据没有空间数据库会单独为这个新插入的业务数据分配出一个新的数据空间,原有的叶子节点依然在原位上不变,建立一个对应新的数据空间的新叶子节点用于存新插入的业务数据对应的主键值,而原有叶子节点保持不变,因此可以大大较少索引的寻址和分裂,且对存储空间利用比较高效,提高了数据加载的性能。
本发明的另一个实施例中,为了更好地处理大批量业务数据插入数据库的情况,对业务数据进行分组操作。
即,在执行步骤S1之前将业务数据分组得到多个数据组。本发明实施例中在进行业务数据分组时,可以预先配置数据组数目和每组容量;分组的配置规则可以依情况设定,即分得的数据组数目以及每个数据组的容量可以根据数据库或者计算机的处理能力进行设定。
在分组时为了避免业务闲时因业务数据量减少而产生的入库延迟现象,当多个数据组中的每个数据组取满数据或者到达预定时间时,直接执行下一步,即直接对每个数据组进行排序操作。
当根据配置好的数据组数目和每组容量分组后,每个数据组均已取满时,依旧剩余有一定数量的业务数据,可以暂时先不进行处理。
经过上述分组操作后,得到的数据组,在步骤S2中进行如下处理:将多个数据组中的每个数据组中的业务数据依据主键值进行排序。
在步骤S3中,将每个数据组中排序后的业务数据依据数据库语法,拼接得到结构查询语句SQL数据。为了提高数据的加载速度,对于每个数据组对应的SQL数据,将每个SQL数据并行插入到数据库中。
本发明的另一个实施例中,考虑到数据库可能在入库时存在因数据量过多而导致的插入数据失败的情况,为了保证业务数据能够及时插入到数据库中,本发明实施例能够对这种插入失败进行实时反馈,在必要时对插入失败的业务数据进行重新插入,主要过程为:
获取用于指示SQL数据是否插入成功的反馈数据;若反馈数据指示SQL数据插入不成功,则对SQL数据中排序后的业务数据进行重新排序,直至反馈数据指示插入成功为止。
上述过程主要针对因数据库原因导致的插入失败,在插入失败的情况下对SQL数据重新排序并重新插入,最终保证业务数据能够插入到数据库中。
本发明实施例针对上述实施例所提供的业务数据插入数据库的方法,提供了一种能够保障上述方法实施的装置,该装置的组成框图如图4所示。图4所示的业务数据插入数据库的装置,包括主键识别模块401、数据排序模块402以及数据入库模块403。
其中主键识别模块401,用于对业务数据进行主键识别,获取业务数据的主键值。
数据排序模块402,用于将业务数据依据主键值进行排序。
数据入库模块403,用于将排序后的业务数据依据数据库语法,拼接得到结构查询语句SQL数据;将SQL数据依序插入到数据库中,并且将插入的业务数据对应的主键值保存到数据库对应的主键索引树的空余叶子节点中。
利用本发明实施例提供的装置,在数据入库之前,采用数据排序模块302对业务数据依据其主键值进行排序,因此在数据入库模块403中进行SQL数据插入操作的时候,其中的业务数据已经为顺序排序后的业务数据。SQL数据插入时,业务数据进入数据库中的数据空间,其主键值也按照顺序顺次保存到主键索引树的空余叶子节点中,这样可以大大减少叶子节点的分裂和移动,从而能够提高数据插入效率、提升数据加载速度。
为了实现本发明一个实施例中提出的数据分组的方式,本发明实施例提供的装置在包括上述主键识别模块401、数据排序模块402以及数据入库模块403的基础上,还包括一个数据分组模块404。该包括主键识别模块401、数据排序模块402、数据入库模块403以及数据分组模块404的装置结构示意图如图5所示:
数据分组模块404,用于将业务数据分组得到多个数据组。
在增加了数据分组模块的基础上,数据排序模块402以及数据入库模块403也进行了改进。
其中数据排序模块402,还用于将多个数据组中的每个数据组中的业务数据依据主键值进行排序。
数据入库模块403,还用于将每个数据组中排序后的业务数据依据数据库语法,拼接得到结构查询语句SQL数据;数据入库模块403还用于将多个数据组对应的SQL数据并行插入到数据库中。
本发明实施例主要针对大批量业务数据插入数据库的情况,采用年数据分组模块404。对业务数据进行分组操作,因此能够将大批量业务数据进行分组入库,提高了针对大批量业务数据入库情况的处理能力。
以上所述的结构框图中所示的功能块可以实现为硬件、软件、固件或者它们的组合。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(ASIC)、适当的固件、插件、功能卡等等。
当以软件方式实现时,本发明的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。本发明实施例同时提供了一种可以实现上述业务数据插入数据库的方法的计算机设备,该计算机设备包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,处理器执行该程序时实现以下步骤:
对业务数据进行主键识别,获取业务数据的主键值。
将业务数据依据主键值进行排序。
将排序后的业务数据依据数据库语法,拼接得到结构查询语句SQL数据。
将SQL数据插入到数据库中,并且将插入的业务数据对应的主键值保存到数据库对应的主键索引树的空余叶子节点中。
本发明的另一个实施例提供了一种计算机可读存储介质,其上存储由计算机程序,计算机程序被处理器执行时实现以下步骤:
对业务数据进行主键识别,获取业务数据的主键值。
将业务数据依据主键值进行排序。
将排序后的业务数据依据数据库语法,拼接得到结构查询语句SQL数据。
将SQL数据插入到数据库中,并且将插入的业务数据对应的主键值保存到数据库对应的主键索引树的空余叶子节点中。
本发明实施例中提及的“计算机可读介质”可以包括能够存储或传输信息的任何介质。计算机可读介质的例子包括电子电路、半导体存储器设备、ROM、闪存、可擦除ROM(EROM)、软盘、CD-ROM、光盘、硬盘、光纤介质、射频(RF)链路,等等。代码段可以经由诸如因特网、内联网等的计算机网络被下载。
本发明可以以其他的具体形式实现,而不脱离其精神和本质特征。例如,特定实施例中所描述的算法可以被修改,而系统体系结构并不脱离本发明的基本精神。因此,当前的实施例在所有方面都被看作是示例性的而非限定性的,本发明的范围由所附权利要求而非上述描述定义,并且,落入权利要求的含义和等同物的范围内的全部改变从而都被包括在本发明的范围之中。
Claims (14)
1.一种业务数据插入数据库的方法,其特征在于,包括:
对业务数据进行主键识别,获取所述业务数据的主键值;
将所述业务数据依据主键值进行排序;
将所述排序后的业务数据依据数据库语法,拼接得到结构查询语句SQL数据;
将所述SQL数据插入到数据库中,并且将插入的业务数据对应的主键值保存到所述数据库对应的主键索引树的空余叶子节点中。
2.如权利要求1所述的方法,其特征在于,还包括:
将所述业务数据分组得到多个数据组;
将所述多个数据组中的每个数据组中的业务数据依据主键值进行排序;
将所述每个数据组中排序后的业务数据依据数据库语法,拼接得到结构查询语句SQL数据;
将多个数据组对应的SQL数据并行插入到所述数据库中。
3.如权利要求1或者2所述的方法,其特征在于,所述数据库为关系型数据库。
4.如权利要求1或者2所述的方法,其特征在于,所述对所述业务数据进行主键识别,获取所述业务数据的主键值,包括:
从所述业务数据中预先配备的配置文件中读取主键字段,并将所述主键字段的主键字段值作为所述业务数据的主键值。
5.如权利要求4所述的方法,其特征在于,所述方法还包括:
当所述业务数据中预先配备的配置文件中无主键字段时,从所述数据库中查询所述业务数据对应的主键字段,在所述配置文件中建立主键字段,并将所述业务数据对应的主键字段的主键字段值存入所述配置文件中建立的主键字段中。
6.如权利要求2所述方法,其特征在于,所述将所述业务数据分组得到多个数据组,包括:
将所述业务数据依据预先配置的数据组数目和每组容量进行分组。
7.如权利要求1或者2所述的方法,其特征在于,所述将所述SQL数据中排序后的所述业务数据依序插入到数据库中,并且将插入的业务数据对应的主键值保存到所述数据库对应的主键索引树的空余叶子节点中,包括:
将排序后的所述业务数据插入到所述数据库的数据空间中;
将所述数据空间中插入的业务数据的主键值保存至所述数据空间对应的叶子节点中;
若所述主键索引树的已有的叶子节点对应的数据空间已满,而所述SQL数据中还有未插入的业务数据,则在数据库中建立新数据空间用于插入所述未插入的业务数据,并在所述主键索引树中建立对应所述新数据空间的新叶子节点,所述新叶子节点用于保存所述新数据空间中插入的业务数据对应的主键值。
8.如权利要求1所述的方法,其特征在于,所述将所述SQL数据中排序后的所述业务数据依序插入到数据库中之后,还包括:
获取用于指示所述SQL数据是否插入成功的反馈数据;
若所述反馈数据指示所述SQL数据插入不成功,则对所述SQL数据中排序后的所述业务数据进行重新排序,直至所述反馈数据指示插入成功为止。
9.如权利要求1所述的方法,其特征在于,所述将所述业务数据依据主键值进行排序,包括:
i)将所有业务数据的主键值作为待排序区域;
ii)在所述待排序区域内选择一个主键值作为基准值;
iii)将小于所述基准值的主键值放置于所述基准值之前,大于所述基准值的主键值放置于所述基准值之后;
iv)将小于所述基准值的主键值作为第一再排序区域,将大于所述基准值的主键值作为第二再排序区域;
v)将所述第一再排序区域和所述第二再排序区域分别作为新的待排序区域;
当所述新的待排序区域中的主键值大于一个时,执行步骤ii)-v),直至待排序区域仅包括一个主键值,则获得排序后的主键值;
将业务数据依据排序后的主键值进行排序。
10.如权利要求2所述的方法,其特征在于,所述将所述业务数据分组得到多个数据组之后,还包括:当多个数据组中的每个数据组取满数据或者到达预定时间时,对所述每个数据组进行排序操作。
11.一种业务数据插入数据库的装置,其特征在于,所述装置包括:
主键识别模块,用于对业务数据进行主键识别,获取所述业务数据的主键值;
数据排序模块,用于将所述业务数据依据主键值进行排序;
数据入库模块,用于将所述排序后的业务数据依据数据库语法,拼接得到结构查询语句SQL数据;将所述SQL数据依序插入到数据库中,并且将插入的业务数据对应的主键值保存到所述数据库对应的主键索引树的空余叶子节点中。
12.如权利要求11所述的装置,其特征在于,所述装置还包括:
数据分组模块,用于将所述业务数据分组得到多个数据组;
所述数据排序模块,还用于将所述多个数据组中的每个数据组中的业务数据依据主键值进行排序;
所述数据入库模块,还用于将所述每个数据组中排序后的业务数据依据数据库语法,拼接得到结构查询语句SQL数据;所述数据入库模块还用于将多个数据组对应的SQL数据并行插入到所述数据库中。
13.一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现以下步骤:
对业务数据进行主键识别,获取所述业务数据的主键值;
将所述业务数据依据主键值进行排序;
将所述排序后的业务数据依据数据库语法,拼接得到结构查询语句SQL数据;
将所述SQL数据插入到数据库中,并且将插入的业务数据对应的主键值保存到所述数据库对应的主键索引树的空余叶子节点中。
14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现以下步骤:
对业务数据进行主键识别,获取所述业务数据的主键值;
将所述业务数据依据主键值进行排序;
将所述排序后的业务数据依据数据库语法,拼接得到结构查询语句SQL数据;
将所述SQL数据插入到数据库中,并且将插入的业务数据对应的主键值保存到所述数据库对应的主键索引树的空余叶子节点中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710686770.XA CN109388636A (zh) | 2017-08-11 | 2017-08-11 | 业务数据插入数据库方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710686770.XA CN109388636A (zh) | 2017-08-11 | 2017-08-11 | 业务数据插入数据库方法、装置、计算机设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109388636A true CN109388636A (zh) | 2019-02-26 |
Family
ID=65413905
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710686770.XA Pending CN109388636A (zh) | 2017-08-11 | 2017-08-11 | 业务数据插入数据库方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109388636A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110134681A (zh) * | 2019-04-15 | 2019-08-16 | 平安科技(深圳)有限公司 | 数据存储与查询方法、装置、计算机设备及存储介质 |
CN111767327A (zh) * | 2020-05-14 | 2020-10-13 | 中邮消费金融有限公司 | 数据流间具有依赖关系的数据仓库构件方法与系统 |
CN111897856A (zh) * | 2020-07-31 | 2020-11-06 | 平安普惠企业管理有限公司 | 监管报文生成方法、装置、电子设备及可读存储介质 |
CN113055226A (zh) * | 2021-02-20 | 2021-06-29 | 烽火通信科技股份有限公司 | 一种网管配置数据下载的排序方法及装置 |
CN113220760A (zh) * | 2021-04-28 | 2021-08-06 | 北京达佳互联信息技术有限公司 | 一种数据处理方法、装置、服务器及存储介质 |
CN113220760B (zh) * | 2021-04-28 | 2024-05-28 | 北京达佳互联信息技术有限公司 | 一种数据处理方法、装置、服务器及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101286160A (zh) * | 2008-05-30 | 2008-10-15 | 同济大学 | 数据库索引的方法 |
CN101706808A (zh) * | 2009-11-17 | 2010-05-12 | 中国科学院软件研究所 | 基于索引树的海量数据库访问控制方法 |
CN102129458A (zh) * | 2011-03-09 | 2011-07-20 | 胡劲松 | 关系型数据库的存储方法及装置 |
CN102609530A (zh) * | 2012-02-14 | 2012-07-25 | 江苏新大诚信息技术有限公司 | 一种分区域双树结构的空间数据库索引方法 |
CN103853844A (zh) * | 2014-03-24 | 2014-06-11 | 南开大学 | 基于Hadoop的关系表非冗余键集合识别方法 |
CN104166705A (zh) * | 2014-08-06 | 2014-11-26 | 广州华多网络科技有限公司 | 数据库的访问方法及装置 |
-
2017
- 2017-08-11 CN CN201710686770.XA patent/CN109388636A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101286160A (zh) * | 2008-05-30 | 2008-10-15 | 同济大学 | 数据库索引的方法 |
CN101706808A (zh) * | 2009-11-17 | 2010-05-12 | 中国科学院软件研究所 | 基于索引树的海量数据库访问控制方法 |
CN102129458A (zh) * | 2011-03-09 | 2011-07-20 | 胡劲松 | 关系型数据库的存储方法及装置 |
CN102609530A (zh) * | 2012-02-14 | 2012-07-25 | 江苏新大诚信息技术有限公司 | 一种分区域双树结构的空间数据库索引方法 |
CN103853844A (zh) * | 2014-03-24 | 2014-06-11 | 南开大学 | 基于Hadoop的关系表非冗余键集合识别方法 |
CN104166705A (zh) * | 2014-08-06 | 2014-11-26 | 广州华多网络科技有限公司 | 数据库的访问方法及装置 |
Non-Patent Citations (2)
Title |
---|
RAVIOR: "深入理解Mysql索引", 《HTTP://WWW.GITLIB.COM/PAGE/MYSQL-INDEX.HTML》 * |
倾斜的镜子: "【MySQL】insert批量插入优化方案", 《HTTPS://WWW.BBSMAX.COM/A/ZOJPGKOYZV/》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110134681A (zh) * | 2019-04-15 | 2019-08-16 | 平安科技(深圳)有限公司 | 数据存储与查询方法、装置、计算机设备及存储介质 |
CN110134681B (zh) * | 2019-04-15 | 2023-10-13 | 平安科技(深圳)有限公司 | 数据存储与查询方法、装置、计算机设备及存储介质 |
CN111767327A (zh) * | 2020-05-14 | 2020-10-13 | 中邮消费金融有限公司 | 数据流间具有依赖关系的数据仓库构件方法与系统 |
CN111897856A (zh) * | 2020-07-31 | 2020-11-06 | 平安普惠企业管理有限公司 | 监管报文生成方法、装置、电子设备及可读存储介质 |
CN113055226A (zh) * | 2021-02-20 | 2021-06-29 | 烽火通信科技股份有限公司 | 一种网管配置数据下载的排序方法及装置 |
CN113220760A (zh) * | 2021-04-28 | 2021-08-06 | 北京达佳互联信息技术有限公司 | 一种数据处理方法、装置、服务器及存储介质 |
CN113220760B (zh) * | 2021-04-28 | 2024-05-28 | 北京达佳互联信息技术有限公司 | 一种数据处理方法、装置、服务器及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109388636A (zh) | 业务数据插入数据库方法、装置、计算机设备及存储介质 | |
CN106981024B (zh) | 一种交易限额计算处理系统及其处理方法 | |
CN107577787B (zh) | 关联数据信息入库的方法及系统 | |
CN103902544A (zh) | 一种数据处理方法及系统 | |
CN101086732A (zh) | 一种海量数据管理方法 | |
CN112597153B (zh) | 一种基于区块链的数据存储方法、装置及存储介质 | |
CN101937474A (zh) | 海量数据查询方法及设备 | |
CN111813805A (zh) | 一种数据处理方法及装置 | |
CN104216893A (zh) | 多租户共享数据表的分区管理方法、服务器与系统 | |
CN102043789A (zh) | 一种更新数据表的方法和装置 | |
CN101686488A (zh) | 业务处理方法、处理系统和工单处理装置 | |
CN109376142A (zh) | 数据迁移方法及终端设备 | |
CN108846121A (zh) | 一种数据搜索方法和装置 | |
CN106202524A (zh) | 数据库及其分表装置和方法 | |
CN103116641B (zh) | 获取排序的统计数据的方法及排序装置 | |
CN103902592A (zh) | 基于MapReduce实现分析函数的方法及系统 | |
CN111625561A (zh) | 一种数据查询方法及装置 | |
CN103064908A (zh) | 一种通过内存快速去重名单的方法 | |
CN102262636B (zh) | 生成数据库分区执行计划的方法及装置 | |
CN1809108A (zh) | 基于过滤片的话单内存排重方法 | |
CN105468623A (zh) | 数据处理方法及装置 | |
CN106649385B (zh) | 基于HBase数据库的数据排序方法和装置 | |
CN104573112A (zh) | Oltp集群数据库中页面查询方法及数据处理节点 | |
CN109885642A (zh) | 面向全文检索的分级存储方法及装置 | |
CN106855862A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190226 |
|
RJ01 | Rejection of invention patent application after publication |