CN105786882B - 一种数据表标识生成、数据写入方法及装置 - Google Patents

一种数据表标识生成、数据写入方法及装置 Download PDF

Info

Publication number
CN105786882B
CN105786882B CN201410817859.1A CN201410817859A CN105786882B CN 105786882 B CN105786882 B CN 105786882B CN 201410817859 A CN201410817859 A CN 201410817859A CN 105786882 B CN105786882 B CN 105786882B
Authority
CN
China
Prior art keywords
data
tables
identifier
mark
sequence
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.)
Active
Application number
CN201410817859.1A
Other languages
English (en)
Other versions
CN105786882A (zh
Inventor
朱春茂
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Advanced Nova Technology Singapore Holdings Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201410817859.1A priority Critical patent/CN105786882B/zh
Publication of CN105786882A publication Critical patent/CN105786882A/zh
Application granted granted Critical
Publication of CN105786882B publication Critical patent/CN105786882B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了一种数据表标识生成、数据写入方法及装置,包括:确定需要使用的多张数据表,并对多张数据表分别生成第一标识;从数据库获取序列号Sequence,根据第一标识以及Sequence为多张数据表分别生成数据表标识;将数据表标识插入相应的数据表内,将待写入的数据根据数据表标识写入数据库。由于本发明实施例所提供的技术方案多表复用同一个Sequence,仅需要向数据库获取一次Sequence,即可为多张数据表生成数据表标识,进而执行后续的数据写入等操作,采用本发明所提供的技术方案,不仅节省了资源,还降低了与数据库的交互次数、减少了系统开销,进而可以提高系统处理性能。

Description

一种数据表标识生成、数据写入方法及装置
技术领域
本发明涉及计算机技术领域,尤其涉及一种数据表标识生成、数据写入方法及装置。
背景技术
序列号Sequence是数据库系统按照一定规则自动增加的数字序列,数据库系统可以根据当前记录数大小加上步长来获取到该表下一条记录应该是什么,常常用来做主键。
通常,应用程序需要将数据通过数据库存储在磁盘上,应用程序的每个业务服务往往需要向数据库中插入多张表的数据。目前,一般做法是为每个数据表分配一个Sequence,然后将Sequence作为表主键的生成元素构造表的标识id,再将数据持久化到数据库中。如图1所示,现有流程具体如下:
当进行一个业务操作时,假设需要向数据库中插入N张表的数据;对表1进行操作时,首先向数据库中获取表1的Sequence,对表1分配一个Sequence,然后根据Sequence构造表1的id,在该生成过程中可以是直接使用Sequence,也可以加入其他信息,将生成的id和其他数据信息一起插入到表中;最后,将数据持久化到数据库。接下来再对表2、表3…表N分别执行上述操作,循环操作直至完成所有表。
现有技术不足在于:
采用现有的操作方式,如果一个业务操作有N张表的插入操作,那么应用程序需要向数据库中获取N次Sequence,这样不仅增加了每次获取Sequence的网络开销以及应用系统的处理耗时,而且对数据库的资源也是一种浪费。
发明内容
本发明实施例提出了一种数据表标识生成、数据写入方法及装置,用以解决现有技术中每次插入表都需要获取Sequence所带来的网络开销较大、耗时较长等技术问题。
本发明实施例提供了一种数据表标识生成方法,包括如下步骤:
确定需要使用的多张数据表,并为多张数据表分别生成第一标识;
向数据库获取序列号Sequence,根据第一标识以及Sequence为多张数据表分别生成数据表标识。
本发明实施例提供了一种数据表标识生成装置,包括:
确定模块,用于确定需要使用的多张数据表,并为多张数据表分别生成第一标识;
数据表标识生成模块,用于向数据库获取Sequence,根据第一标识以及Sequence为多张数据表分别生成数据表标识。
有益效果:
本发明实施例中为确定的多个数据表生成第一标识,并在获取Sequence后根据第一标识和Sequence为多张数据表分别生成数据表,由于本发明实施例所提供的技术方案仅需要向数据库获取一次Sequence,即可为多张数据表生成数据表标识,不仅节省了资源,还降低了与数据库的交互次数、减少了系统开销,进而可以提高系统处理性能。
本发明实施例提供了一种利用上述方法生成标识后进行数据写入的方法,包括如下步骤:
将所述数据表标识插入相应的数据表;
将待写入的数据根据所述数据表标识写入数据库。
本发明实施例还提供了一种利用上述装置生成标识后进行数据写入的装置,包括:
标识插入模块,用于将所述数据表标识插入相应的数据表;
数据写入模块,用于将待写入的数据根据所述数据表标识写入数据库。
有益效果如下:
由于本发明实施例所提供的数据写入方法采用的是利用上述数据表标识生成方式生成的数据表标识,与数据库交互的次数包括:在进行数据写入之前,与数据库交互一次来获取Sequence,以及在数据写入时数据写入的次数,由于数据写入前的数据表标识生成过程中减少了与数据库交互的次数,从而使得数据写入这一整个过程的数据库交互次数相应地减少了,节省了系统开销的同时,提高了系统处理性能。
附图说明
下面将参照附图描述本发明的具体实施例,其中:
图1示出了现有技术中数据写入方法的流程示意图;
图2示出了本发明实施例中数据表标识生成方法实施的流程示意图;
图3示出了本发明实施例中数据写入方法实施的流程示意图;
图4示出了本发明实施例中数据表标识生成装置的结构示意图;
图5示出了本发明实施例中数据写入装置的结构示意图。
具体实施方式
为了使本发明的技术方案及优点更加清楚明白,以下结合附图对本发明的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本发明的一部分实施例,而不是所有实施例的穷举。并且在不冲突的情况下,本说明中的实施例及实施例中的特征可以互相结合。
本发明实施例提出了一种数据表标识生成、数据写入方法及装置,下面进行说明。
图2示出了本发明实施例中数据表标识生成方法实施的流程示意图,如图所示,方法可以包括如下步骤:
步骤201、确定需要使用的多张数据表,并为多张数据表分别生成第一标识;
步骤202、向数据库获取Sequence,根据第一标识以及Sequence为多张数据表分别生成数据表标识。
本发明实施例通过采用上述技术方案,通过将多张数据表复用一个Sequence,从而可以实现仅需要与数据库交互一次即可为多张数据表分别生成标识,降低了与数据库的交互次数,节省了资源与系统开销的同时,进而可以提高系统处理性能。
实施中,第一标识可以为每张数据表在多张数据表排序后的编号。
由于本发明实施例需要多张数据表复用一个Sequence,那么首先要确保生成的数据表标识ID不重复,对此,本发明实施例可以采用对业务系统所需要使用的数据表进行编号的方式。例如,假设业务系统需要使用到N张数据表,那么本发明实施例对这N张数据表进行编号,可以如表1.1所示,具体如下:
通常,一个业务系统需要使用的数据表是有限的,也就是说,N是一个有限集合。
在具体实施中,编号的位数可以根据数据表的数量进行确定。比如,数据表不超过9张,那么编号可以通过一位数表示;如果需要使用的数据表的数量大于9张且不超过100张,那么编号可以通过两位数表示;以此类推。本发明实施例对第一标识的具体位数不作限制。
下面以需要使用的数据表的数量不超过100张为例进行说明,可以如表1.2所示,具体如下:
本发明实施例的第一标识可以为数据表的编号,也可以采用其他标识信息,本发明对此不作限制。
在本发明实施例中,从数据库获取到Sequence以后,可以根据第一标识与Sequence生成数据表标识。
以第一标识为编号为例继续说明如下:
本发明实施例通过在获取到的Sequence中增加上述各个数据表的编号信息,来生成数据表标识。假设获取到的Sequence为123456,那么生成的表1的数据表标识则可以为01123456。对数据表的标识格式重构之后,可以如表1.3所示,具体如下:
很显然地,本发明实施例中采用“编号+Sequence”的方式仅是由于这种方式比较易于本领域技术人员使用/理解,所以这里以“编号+Sequence”的方式为例;但是,从理论上说,用其他的方式也是可以的,例如:“Sequence+编号”等,只要能够实现多张数据表复用一个Sequence的目的即可。“编号+Sequence”的方式仅用于教导本领域技术人员具体如何实施本发明,但并不意味仅能使用“编号+Sequence”的方式,实施过程中可以结合实践需要来确定相应的方式。
为了进一步降低多表复用Sequence时数据表标识重复的概率,本发明还可以采用如下方式实施。
实施中,为多张数据表分别生成数据表标识,可以包括:
根据第一标识以及Sequence生成第二标识;
将第二标识与第三标识结合,生成数据表标识。
本发明实施例通过在第二标识的基础上,增加第三标识,来降低数据表标识的重复概率,确保数据表标识的唯一性。
实施中,第三标识可以为当前时间信息。
本发明实施例可以在第二标识的基础上增加时间信息,例如:在第二标识的前面增加当前时间信息。下面以时间信息为2014年11月23日22点为例进行说明,可以如表1.4所示,具体如下:
其中,前半部分加粗的内容为当前时间信息,中间未加粗内容为编号,后半部分加粗的内容为获取的Sequence,也即,生成的数据表标识的格式可以如表1.5所示,具体如下:
很显然地,时间信息可以采用任意单位来表示,例如:当系统的并发写入量非常大的情况下,可以考虑将时间信息具体到半小时或者10分钟等;当系统的并发写入量非常小的时候,也可以只精确到天,如时间信息为20141123,或者只精确到月,如时间信息为201411。时间信息的位数越多,相应的,数据表标识重复的概率越小,本领域技术人员可以根据实际需要进行相应设置,本发明对时间信息的具体位数不作限制。
本发明实施例还提供了一种利用上述方法生成标识后进行数据写入的方法(可以简称为数据写入方法),图3示出了本发明实施例中数据写入方法实施的流程示意图,如图所示,方法可以包括如下步骤:
步骤301、将数据表标识插入相应的数据表;
步骤302、将待写入的数据根据数据表标识写入数据库。
由于本发明实施例所提供的数据写入方法采用的是利用上述数据表标识生成方式生成的数据表标识,与数据库交互的次数包括两部分:一部分是在进行数据写入之前,与数据库交互一次来获取Sequence;另一部分是在数据写入时与数据库交互进行数据写入的次数,由于在数据写入前的数据表标识生成过程中减少了与数据库交互的次数,从而使得数据写入这一整个过程的数据库交互次数相应地减少了,节省了系统开销的同时,提高了系统处理性能。
为了便于本发明的实施,下面以实例进行说明。
假设一个用户信息的模型如表1.6所示,具体如下:
由上表可以看出,用户注册这一业务服务需要向五张表插入数据。
按照现有技术的做法是,每向一张表插入一条数据之前,则会向对应表的Sequence取一个值出来,组装成这张表的id,然后将数据插入到数据库中。这种方式,一次用户注册操作需要与数据库的交互次数相当于5次取Sequence加上5次数据插入的次数,共10次数据库交互。
而采用本发明实施例所提供的技术方案,由于是5张数据表分配同一个Sequence,根据本发明实施例中的数据表标识生成方式为每张表组装一个ID,然后将数据插入数据库。采用本发明实施例的这种方式,用户注册操作需要与数据库的交互则为:
第一次交互、为这5张数据表从数据库获取1个Sequence,利用本发明实施例所提供的技术方案,根据该Sequence值分别为5张数据表生成数据表标识,并将数据表标识插入相应的数据表内;
第二次交互、根据已生成的第一张数据表标识,将待写入第一张数据表的数据写入数据库;
第三次交互、根据已生成的第二张数据表标识,将待写入第二张数据表的数据写入数据库;
第四次交互、根据已生成的第三张数据表标识,将待写入第三张数据表的数据写入数据库;
第五次交互、根据已生成的第四张数据表标识,将待写入第四张数据表的数据写入数据库;
第六次交互、根据已生成的第五张数据表标识,将待写入第五张数据表的数据写入数据库。
可以看出,共需要1次取Sequence的交互、以及将这5张数据表的待写入数据写入数据库的5次交互,也即,共6次数据库交互。
假设一次Sequence取值需要1ms的话,那么,利用本发明实施例所提供的技术方案可以为用户注册业务节省4ms。特别是,当用户注册量非常大的时候,节省的资源就会更加可观。
基于同一发明构思,本发明实施例中还提供了一种数据表标识生成装置、一种数据写入装置,由于这些设备解决问题的原理与一种数据表标识生成方法、一种数据写入方法相似,因此这些设备的实施可以参见方法的实施,重复之处不再赘述。
图4示出了本发明实施例中数据表标识生成装置的结构示意图,如图所示,装置可以包括:
确定模块401,用于确定需要使用的多张数据表,并为该多张数据表分别生成第一标识;
数据表标识生成模块402,用于向数据库获取序列Sequence,根据第一标识以及Sequence为多张数据表分别生成数据表标识。
实施中,确定模块401可以用于对多张数据表排序后为每张数据表生成编号。
实施中,数据表标识生成模块402可以用于根据第一标识以及Sequence生成第二标识;将第二标识与第三标组合,生成数据表标识。
实施中,数据表标识生成模块402可以用于将第二标识与当前时间信息组合,生成数据表标识。
图5示出了本发明实施例中利用上述装置生成标识后进行数据写入的装置的结构示意图,如图所示,装置可以包括:
标识插入模块501,用于将数据表标识插入相应的数据表;
数据写入模块502,用于将待写入的数据根据该数据表标识写入数据库。
综上可以看出,本发明实施例可以通过将Sequence与其他标识进行编码后,就可以达到多张数据表复用一个Sequence的目的,降低与数据库的交互次数,从而节省系统开销,在一定程度上提高系统处理性能。
上述实施例中,均可以采用现有的功能元器件模块来实施。例如,确定模块可以是任意一个具备数据表确定功能的设备都具备的元器件;至于数据表标识生成模块则可以采用现有的标识生成元器件,至少,现有数据处理技术中采用的数据库上便具备实现该功能元器件;同时,插入模块、写入模块分别进行的数据插入、写入等采用的都可以是现有的技术手段,本领域技术人员经过相应的设计开发即可实现。
为了描述的方便,以上所述装置的各部分以功能分为各种模块或单元分别描述。当然,在实施本发明时可以把各模块或单元的功能在同一个或多个软件或硬件中实现。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

Claims (8)

1.一种数据表标识生成方法,其特征在于,包括如下步骤:
确定需要使用的多张数据表,并为所述多张数据表分别生成第一标识;
从数据库获取序列号Sequence,根据所述第一标识以及所述Sequence为所述多张数据表分别生成数据表标识;
所述为多张数据表分别生成数据表标识,包括:
根据所述第一标识以及所述Sequence生成第二标识;
将所述第二标识与第三标识组合,生成所述数据表标识。
2.如权利要求1所述的方法,其特征在于,所述第一标识为每张数据表在多张数据表排序后的编号。
3.如权利要求1所述的方法,其特征在于,所述第三标识为当前时间信息。
4.一种利用如权利要求1至3任一所述方法生成标识后进行数据写入的方法,其特征在于,包括如下步骤:
将所述数据表标识插入相应的数据表;
将待写入的数据根据所述数据表标识写入数据库。
5.一种数据表标识生成装置,其特征在于,包括:
确定模块,用于确定需要使用的多张数据表,并为所述多张数据表分别生成第一标识;
数据表标识生成模块,用于向数据库获取Sequence,根据所述第一标识以及所述Sequence为所述多张数据表分别生成数据表标识;
所述数据表标识生成模块用于根据所述第一标识以及所述Sequence生成第二标识;将所述第二标识与第三标识组合,生成所述数据表标识。
6.如权利要求5所述的装置,其特征在于,所述确定模块用于对多张数据表排序后为每张数据表生成编号。
7.如权利要求5所述的装置,其特征在于,所述数据表标识生成模块用于将所述第二标识与当前时间信息组合,生成所述数据表标识。
8.一种利用如权利要求5至7任一所述装置生成标识后进行数据写入的装置,其特征在于,包括:
标识插入模块,用于将所述数据表标识插入相应的数据表;
数据写入模块,用于将待写入的数据根据所述数据表标识写入数据库。
CN201410817859.1A 2014-12-24 2014-12-24 一种数据表标识生成、数据写入方法及装置 Active CN105786882B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410817859.1A CN105786882B (zh) 2014-12-24 2014-12-24 一种数据表标识生成、数据写入方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410817859.1A CN105786882B (zh) 2014-12-24 2014-12-24 一种数据表标识生成、数据写入方法及装置

Publications (2)

Publication Number Publication Date
CN105786882A CN105786882A (zh) 2016-07-20
CN105786882B true CN105786882B (zh) 2019-04-12

Family

ID=56378432

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410817859.1A Active CN105786882B (zh) 2014-12-24 2014-12-24 一种数据表标识生成、数据写入方法及装置

Country Status (1)

Country Link
CN (1) CN105786882B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106649736B (zh) * 2016-12-23 2020-04-17 成都信息工程大学 一种通用数据库中自动编号生成方法
CN109165217A (zh) * 2018-08-03 2019-01-08 北京涛思数据科技有限公司 一种时序数据的高效存储方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102741843A (zh) * 2011-03-22 2012-10-17 青岛海信传媒网络技术有限公司 从数据库中读取数据的方法及装置
CN103064823A (zh) * 2012-12-25 2013-04-24 北京易时信通科技有限公司 数据处理方法及系统
CN104050207A (zh) * 2013-03-15 2014-09-17 富士施乐株式会社 信息处理装置和文件管理系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102741843A (zh) * 2011-03-22 2012-10-17 青岛海信传媒网络技术有限公司 从数据库中读取数据的方法及装置
CN103064823A (zh) * 2012-12-25 2013-04-24 北京易时信通科技有限公司 数据处理方法及系统
CN104050207A (zh) * 2013-03-15 2014-09-17 富士施乐株式会社 信息处理装置和文件管理系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"重命名同一个文件夹内的文件的批处理命令";grl2006;《https://wenku.baidu.com/view/01352f07cc175527072208c9.html》;20110618;第1页第1段,第2页第2段

Also Published As

Publication number Publication date
CN105786882A (zh) 2016-07-20

Similar Documents

Publication Publication Date Title
CN106250987B (zh) 一种机器学习方法、装置及大数据平台
CN108133007A (zh) 一种数据同步方法和系统
CN110032369A (zh) 一种代码自动生成方法、装置及介质
CN104123184B (zh) 一种用于为构建过程中的任务分配资源的方法和系统
CN104731896B (zh) 一种数据处理方法及系统
CN109298998A (zh) 工作量评估及模型训练方法、电子设备及存储介质
CN109218352A (zh) 一种区块链网络中交易信息的共识确认方法及装置
CN110347708A (zh) 一种数据处理方法以及相关设备
CN110046116B (zh) 一种张量填充方法、装置、设备及存储介质
CN113535399B (zh) 一种nfv资源调度方法、装置以及系统
CN109002474A (zh) 一种数据迁移方法及装置
CN109344269A (zh) 图形数据库写入的方法、电子设备及计算机可读存储介质
CN109582458A (zh) 资源信息加载方法、装置、存储介质及处理器
CN102394927A (zh) 一种内外网数据存储和同步的方法
CN105786882B (zh) 一种数据表标识生成、数据写入方法及装置
CN110532175A (zh) 接口测试方法、接口测试装置、服务器和存储介质
CN103905201B (zh) 主应用与多个从属应用的交互方法及装置
CN109271247A (zh) 内存优化方法、装置、计算机装置以及存储介质
CN110020333A (zh) 数据分析方法及装置、电子设备、存储介质
US10026500B2 (en) Address translation stimuli generation for post-silicon functional validation
CN109961516A (zh) 表面获取方法、装置及非暂态电脑可读取记录媒体
CN110069247A (zh) 一种应用程序的开发方法及装置、使用方法及装置
CN109542398A (zh) 一种业务系统生成方法、装置及计算机可读存储介质
CN104753741A (zh) 一种网卡测试性能调节的方法及装置
CN109144840A (zh) 一种测试方法、装置及其设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20200922

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Patentee after: Innovative advanced technology Co.,Ltd.

Address before: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Patentee before: Advanced innovation technology Co.,Ltd.

Effective date of registration: 20200922

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Patentee after: Advanced innovation technology Co.,Ltd.

Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands

Patentee before: Alibaba Group Holding Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20240226

Address after: Guohao Times City # 20-01, 128 Meizhi Road, Singapore

Patentee after: Advanced Nova Technology (Singapore) Holdings Ltd.

Country or region after: Singapore

Address before: 27 Hospital Road, George Town, Grand Cayman ky1-9008

Patentee before: Innovative advanced technology Co.,Ltd.

Country or region before: Cayman Islands