CN105786939A - 优化内存数据库的方法及装置 - Google Patents
优化内存数据库的方法及装置 Download PDFInfo
- Publication number
- CN105786939A CN105786939A CN201410837463.3A CN201410837463A CN105786939A CN 105786939 A CN105786939 A CN 105786939A CN 201410837463 A CN201410837463 A CN 201410837463A CN 105786939 A CN105786939 A CN 105786939A
- Authority
- CN
- China
- Prior art keywords
- data
- data base
- physical space
- index information
- base
- 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.)
- Withdrawn
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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种优化内存数据库的方法,通过当存在两个数据模型定义相同的数据库时,将两个数据库中相同的数据进行合并,保留不同的数据,同时,本发明还提供一种优化内存数据库的装置,从而实现减少数据本身占用的空间,以及数据模型定义占用的空间,来达到优化数据库内存的目的。同时通过是否使能内存优化,来兼容多个不同的项目。
Description
技术领域
本发明涉及内存数据库技术领域,尤其涉及一种优化内存数据库的方法及装置。
背景技术
内存数据库是将数据存放在内存中并且可以直接操作的数据库,主要包括数据模型定义、数据内容本身、索引等。
目前平台在实现某个功能时,需要创建两个用户表定义相同的数据库c和数据库r,c库用来存储用户配置时的预处理数据,r库用来存储提交后的配置数据。操作流程为:先在c库中检查操作的合法性,通过检查后修改c库数据,用户再进行提交操作,用c库中的新数据覆盖r库中的旧数据,操作完成后,c库和r库中存在相同的数据。这种方式占用内存较多,且当其他项目使用该平台时,由于硬件内存资源紧张,所以,需要数据库尽可能少地占用内存。
发明内容
本发明提供一种优化内存数据库的方法及装置,主要目的在于解决如何减少内存数据占用空间的技术问题。
为实现上述目的,本发明提供的一种优化内存数据库的方法,所述方法包括:
在第一数据库中插入新数据时,创建临时物理空间;
若所述新数据的索引信息与所述第一数据库的索引信息以及与所述第二数据库的索引信息均匹配,且所述临时物理空间存储的数据内容和与所述索引信息对应的所述第二数据库的数据内容相同,则删除所述临时物理空间存储的所述新数据,将所述第二数据库存储的与所述索引信息对应的所述第二数据库的数据内容的第一字段设置为合并标识
记录与所述索引信息对应的所述第二数据库的数据内容存储在所述第二数据库的物理空间的地址,根据所述第二数据库的物理空间的地址生成所述第一数据库的物理空间地址关系表,所述第一数据库的物理空间地址关系表包括所述索引信息与存储与所述索引信息对应的数据内容的物理空间地址的对应关系。
优选地,所述删除所述临时物理空间存储的所述新数据,将所述第二数据库存储的与所述索引信息对应的所述第二数据库的数据内容的第一字段设置为合并标识之前,还包括:
获取所述新数据的索引信息,并和所述第一数据库的索引信息以及第二数据库的索引信息进行匹配;
若所述新数据的索引信息与所述第一数据库的索引信息以及与所述第二数据库的索引信息均匹配,则判断所述临时物理空间存储的数据内容和与所述索引信息对应的所述第二数据库的数据内容是否相同。
优选地,所述在第一数据库中插入新数据时,创建临时物理空间之后,还包括:
判断所述内存数据库是否需要优化;
在所述内存数据库不需要优化的情况下,将所述新数据写入所述临时物理空间,获取所述新数据的索引信息,和所述第一数据库的索引信息进行匹配;若匹配,则根据所述临时物理空间的地址生成所述第一数据库的物理空间地址关系表,返回插入成功;若不匹配,则删除所述临时物理空间存储的所述新数据,返回插入失败的信息。
优选地,所述获取所述新数据的索引信息,并和所述第一数据库的索引信息以及第二数据库的索引信息进行匹配之后,还包括:
若所述新数据的索引信息与所述第一数据库的索引信息不匹配,则删除所述临时物理空间存储的所述新数据,并且返回插入失败的信息;
若所述新数据的索引信息与所述第一数据库的索引信息匹配,但与所述第二数据库的索引信息不匹配,则根据所述临时物理空间的地址生成所述第一数据库的物理空间地址关系表。
优选地,所述判断所述临时物理空间存储的数据内容和与所述索引信息对应的所述第二数据库的数据内容是否相同之后,还包括:
若所述临时物理空间存储的数据内容和与所述索引信息对应的所述第二数据库的数据内容不相同,则根据所述临时物理空间的地址生成所述第一数据库的物理空间地址关系表。
优选地,所述方法还包括:
在修改所述第一数据库的第一数据的情况下,判断所述内存数据库是否存在优化;
若所述内存数据库存在优化,则获取所述第一数据的标识;
若所述第一数据的标识为合并标识,则将所述合并标识修改为所述第一数据库的标识;
创建新的物理空间,将所述第一数据的数据内容写入所述新的物理空间,并在所述新的物理空间中设置所述第二数据库的标识,并根据所述新的物理空间的地址生成所述第二数据库的物理空间地址关系表;
将所述第一数据的修改数据存储在新的临时物理空间中;
判断所述第一数据的修改数据的索引信息与所述第一数据库的索引信息是否相同,若是,则删除所述第一数据库中的所述第一数据,将所述第一数据的修改数据写入所述第一数据在所述第一数据库中的物理空间,并根据所述第一数据在所述第一数据库中的物理空间地址生成所述第一数据库的物理空间地址关系表。
优选地,所述获取所述第一数据的标识之后,还包括:
若所述第一数据的标识为所述第二数据库标识,则返回修改所述第一数据失败的信息;
若所述第一数据的标识为所述第一数据库的标识,则创建新的临时物理空间,将所述第一数据的修改数据存储在新的临时物理空间中;
判断所述第一数据的修改数据的索引信息与所述第一数据库的索引信息是否相同,若是,则删除所述第一数据库中的所述第一数据,将所述第一数据的修改数据写入所述第一数据在所述第一数据库中的物理空间,并根据所述第一数据在所述第一数据库中的物理空间地址生成所述第一数据库的物理空间地址关系表。
优选地,所述若所述第一字段的信息为所述第一数据库的标识,根据所述第一数据在所述第一数据库中的物理空间地址生成所述第一数据库的物理空间地址关系表之后,还包括:
若所述内存数据库存在优化,判断所述第一数据的修改数据在所述第二数据库中是否存在相同的数据内容;
若是,则删除所述第二数据库中的相同数据内容,并根据所述第一数据的修改数据在所述第一数据库中的物理空间地址生成所述第二数据库的物理空间地址关系表,将所述第一数据的修改数据的标识设置为合并标识;
删除所述新的临时物理空间存储的数据内容。
优选地,所述方法还包括:
若所述内存数据库不存在优化,则删除所述新的临时物理空间存储的数据内容;
若所述内存数据库存在优化且所述第一数据的修改数据在所述第二数据库中不存在相同的数据内容,则删除所述新的临时物理空间存储的数据内容。
优选地,所述方法还包括:
在删除所述第一数据库的第二数据的情况下,判断所述内存数据库是否存在优化;
若所述内存数据库存在优化且所述第二数据的标识为所述合并标识,则将所述第二数据的标识修改为所述第二数据库的标识;
删除所述第一数据库中的与所述第二数据对应的物理空间地址关系表。
优选地,所述方法还包括:
若所述内存数据库不存在优化,则删除所述第一数据库中的第二数据,并删除所述第一数据库中的与所述第二数据对应的物理空间地址关系表;
若所述第二数据的标识为所述第一数据库的标识,则删除所述第一数据库中的第二数据,并删除所述第一数据库中的与所述第二数据对应的物理空间地址关系表;
若所述第二数据的标识为所述第二数据库的标识,则返回删除所述第二数据失败的信息。
优选地,所述方法还包括:
在查找所述第一数据库的记录的情况下,将游标移到第一记录;
若所述第一记录的标识为所述第一数据库的标识或者合并标识,则发送所述第一记录的信息;
若所述第一记录的标识为所述第二数据库的标识,则将游标移到下一个记录。
此外,为实现上述目的,本发明还提供一种优化内存数据库的装置,所述装置包括:
第一创建单元,用于在第一数据库中插入新数据时,创建临时物理空间;
第一设置单元,用于若所述内存数据库需要优化的情况下,在所述临时物理空间设置所述第一数据库的标识,并将所述新数据写入所述临时物理空间;
第一删除单元,用于若所述新数据的索引信息与所述第一数据库的索引信息以及与所述第二数据库的索引信息均匹配,且所述临时物理空间存储的数据内容和与所述索引信息对应的所述第二数据库的数据内容相同,则删除所述临时物理空间存储的所述新数据,将所述第二数据库存储的与所述索引信息对应的所述第二数据库的数据内容的第一字段设置为合并标识;
第一生成单元,用于记录与所述索引信息对应的所述第二数据库的数据内容存储在所述第二数据库的物理空间的地址,根据所述第二数据库的物理空间的地址生成所述第一数据库的物理空间地址关系表,所述第一数据库的物理空间地址关系表包括所述索引信息与存储与所述索引信息对应的数据内容的物理空间地址的对应关系。
优选地,所述装置还包括:
第一获取单元,用于获取所述新数据的索引信息,并和所述第一数据库的索引信息以及第二数据库的索引信息进行匹配;
第一判断单元,用于若所述新数据的索引信息与所述第一数据库的索引信息以及与所述第二数据库的索引信息均匹配,则判断所述临时物理空间存储的数据内容和与所述索引信息对应的所述第二数据库的数据内容是否相同。
优选地,所述装置还包括第二判断单元,用于判断所述内存数据库是否需要优化;
写入单元,用于在所述内存数据库不需要优化的情况下,将所述新数据写入所述临时物理空间。
优选地,所述装置还包括:
第二删除单元,用于若所述新数据的索引信息与所述第一数据库的索引信息不匹配,则删除所述临时物理空间存储的所述新数据,并且返回插入失败的信息;
第二生成单元,用于若所述新数据的索引信息与所述第一数据库的索引信息匹配,但与所述第二数据库的索引信息不匹配,则根据所述临时物理空间的地址生成所述第一数据库的物理空间地址关系表。
优选地,所述装置还包括第三生成单元,用于若所述临时物理空间存储的数据内容和与所述索引信息对应的所述第二数据库的数据内容不相同,则根据所述临时物理空间的地址生成所述第一数据库的物理空间地址关系表。
优选地,所述装置还包括:
第二判断单元,用于在修改所述第一数据库的第一数据的情况下,判断所述内存数据库是否存在优化;
第二获取单元,用于若所述内存数据库存在优化,则获取所述第一数据的标识;
第一修改单元,用于若所述第一数据的标识为合并标识,则将所述合并标识修改为所述第一数据库的标识;
第二创建单元,用于创建新的物理空间,将所述第一数据的数据内容写入所述新的物理空间,并在所述新的物理空间中设置所述第二数据库的标识,并根据所述新的物理空间的地址生成所述第二数据库的物理空间地址关系表;
存储单元,用于将所述第一数据的修改数据存储在新的临时物理空间中;
第四生成单元,用于判断所述第一数据的修改数据的索引信息与所述第一数据库的索引信息是否相同,若是,则删除所述第一数据库中的所述第一数据,将所述第一数据的修改数据写入所述第一数据在所述第一数据库中的物理空间,并根据所述第一数据在所述第一数据库中的物理空间地址生成所述第一数据库的物理空间地址关系表。
优选地,所述装置还包括:
返回单元,用于若所述第一数据的标识为所述第二数据库标识,则返回修改所述第一数据失败的信息;
第三创建单元,用于若所述第一数据的标识为所述第一数据库的标识,则创建新的临时物理空间,将所述第一数据的修改数据存储在新的临时物理空间中;
第五生成单元,用于判断所述第一数据的修改数据的索引信息与所述第一数据库的索引信息是否相同,若是,则删除所述第一数据库中的所述第一数据,将所述第一数据的修改数据写入所述第一数据在所述第一数据库中的物理空间,并根据所述第一数据在所述第一数据库中的物理空间地址生成所述第一数据库的物理空间地址关系表。
优选地,所述装置还包括:
第三判断单元,用于若所述内存数据库存在优化,判断所述第一数据的修改数据在所述第二数据库中是否存在相同的数据内容;
第六生成单元,用于删除所述第二数据库中的相同数据内容,并根据所述第一数据的修改数据在所述第一数据库中的物理空间地址生成所述第二数据库的物理空间地址关系表,将所述第一数据的修改数据的标识设置为合并标识;
第三删除单元,用于删除所述新的临时物理空间存储的数据内容。
优选地,所述第三删除单元还用于:
若所述内存数据库不存在优化,则删除所述新的临时物理空间存储的数据内容;
若所述内存数据库存在优化且所述第一数据的修改数据在所述第二数据库中不存在相同的数据内容,则删除所述新的临时物理空间存储的数据内容。
优选地,所述装置还包括:
第四判断单元,用于在删除所述第一数据库的第二数据的情况下,判断所述内存数据库是否存在优化;
第二修改单元,用于若所述内存数据库存在优化且所述第二数据的标识为所述合并标识,则将所述第二数据的标识修改为所述第二数据库的标识;
第三删除单元,用于删除所述第一数据库中的与所述第二数据对应的物理空间地址关系表。
优选地,所述第三删除单元,还用于:
若所述内存数据库不存在优化,则删除所述第一数据库中的第二数据,并删除所述第一数据库中的与所述第二数据对应的物理空间地址关系表;
若所述第二数据的标识为所述第一数据库的标识,则删除所述第一数据库中的第二数据,并删除所述第一数据库中的与所述第二数据对应的物理空间地址关系表;
若所述第二数据的标识为所述第二数据库的标识,则返回删除所述第二数据失败的信息。
优选地,所述装置还包括查找单元,所述查找单元用于:
在查找所述第一数据库的记录的情况下,将游标移到第一记录;
若所述第一记录的标识为所述第一数据库的标识或者合并标识,则发送所述第一记录的信息;
若所述第一记录的标识为所述第二数据库的标识,则将游标移到下一个记录。
本发明实施例通过在第一数据库中插入新数据时,创建临时物理空间;若所述内存数据库需要优化的情况下,在所述临时物理空间设置所述第一数据库的标识,并将所述新数据写入所述临时物理空间;获取所述新数据的索引信息,并和所述第一数据库的索引信息以及第二数据库的索引信息进行匹配;若所述新数据的索引信息与所述第一数据库的索引信息以及与所述第二数据库的索引信息均匹配,则判断所述临时物理空间存储的数据内容和与所述索引信息对应的所述第二数据库的数据内容是否相同;若相同,则删除所述临时物理空间存储的所述新数据,将所述第二数据库存储的与所述索引信息对应的所述第二数据库的数据内容的第一字段设置为合并标识;记录与所述索引信息对应的所述第二数据库的数据内容存储在所述第二数据库的物理空间的地址,根据所述第二数据库的物理空间的地址生成所述第一数据库的物理空间地址关系表,所述第一数据库的物理空间地址关系表包括所述索引信息与存储与所述索引信息对应的数据内容的物理空间地址的对应关系,当存在两个数据模型定义相同的数据库时,通过裁剪掉一个数据库,然后将两个数据库中相同的数据进行合并,保留不同的数据,通过减少数据本身占用的空间,以及数据模型定义占用的空间,来达到优化数据库内存的目的。同时通过是否使能内存优化,来兼容多个不同的项目。采用本方法对内存进行优化,大约可以节约30%内存。
附图说明
图1为优化内存数据库的方法第一实施例的流程示意图;
图2为优化内存数据库的方法第二实施例的流程示意图;
图3为优化内存数据库的方法第三实施例的流程示意图;
图4为优化内存数据库的方法第四实施例的流程示意图;
图5为优化内存数据库的方法第五实施例的流程示意图;
图6为优化内存数据库的方法第六实施例的流程示意图;
图7为优化内存数据库的方法第七实施例的流程示意图;
图8为优化内存数据库的方法第八实施例的流程示意图;
图9为优化内存数据库的方法第九实施例的流程示意图;
图10为优化内存数据库的方法第十实施例的流程示意图;
图11为优化内存数据库的方法第十一实施例的流程示意图;
图12为本发明优化内存数据库的装置第一实施例的功能模块示意图;
图13为本发明优化内存数据库的装置第二实施例的功能模块示意图;
图14为本发明优化内存数据库的装置第三实施例的功能模块示意图;
图15为本发明优化内存数据库的装置第四实施例的功能模块示意图;
图16为本发明优化内存数据库的装置第五实施例的功能模块示意图;
图17为本发明优化内存数据库的装置第六实施例的功能模块示意图;
图18为本发明优化内存数据库的装置第七实施例的功能模块示意图;
图19为本发明优化内存数据库的装置第八实施例的功能模块示意图;
图20为本发明优化内存数据库的装置第九实施例的功能模块示意图;
图21为本发明优化内存数据库的装置第十实施例的功能模块示意图;
图22为本发明优化内存数据库的装置第十一实施例的功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明提供一种优化内存数据库的方法。
参照图1,图1为优化内存数据库的方法第一实施例的流程示意图。
在第一实施例中,该优化内存数据库的方法包括:
步骤101,在第一数据库中插入新数据时,创建临时物理空间;
具体的,开启内存优化时,创建一个数据库,一份用户表定义,用户表上创建两份索引,即检索c库的索引和检索r库的索引。
每张用户表中增加rcflag字段,rcflag字段有三种取值,分别为c、r和rc,c代表记录属于c数据库,r代表记录属于r数据库,rc代表记录既属于c数据库又属于r数据库。以第一数据库为r数据库,第二数据库为c数据库为例进行说明。假设要在r数据库中插入一条学生信息,如学号为10001的张三,索引为学号,先创建临时物理空间存储“学号为10001的张三”的数据。
步骤102,若所述内存数据库需要优化的情况下,在所述临时物理空间设置所述第一数据库的标识,并将所述新数据写入所述临时物理空间;
具体的,可以将所述临时物理空间的第一字段设置为rcflag字段,并赋值rcflag字段为r,用以标识所述临时物理空间存储的新数据需要插入r数据库。
步骤103,若所述新数据的索引信息与所述第一数据库的索引信息以及与所述第二数据库的索引信息均匹配,且所述临时物理空间存储的数据内容和与所述索引信息对应的所述第二数据库的数据内容相同,则删除所述临时物理空间存储的所述新数据,将所述第二数据库存储的与所述索引信息对应的所述第二数据库的数据内容的第一字段设置为合并标识;
具体的,获取“学号为10001的张三”的数据的索引信息为“学号10001”,并和r数据库和c数据库的索引信息进行匹配,即从r数据库和c数据库中查找“学号10001”的信息。
在r数据库中检查新记录中的关键字是否合法,即判断r数据库中是否预先存储“学号10001”,若未存储,则在c数据库中查找“学号10001”的信息,则判断所述临时物理空间储存的新数据和以学号10001为索引在c库中找到的记录中的数据内容是否相同。
若以“学号10001”为索引信息在c库中找到的记录中的数据内容为“学号为10001的张三”,则删除所述临时物理空间存储的所述新数据,将“学号10001”的索引信息在c数据库中存储的数据内容中的rcflag字段设置为rc。
步骤104,记录与所述索引信息对应的所述第二数据库的数据内容存储在所述第二数据库的物理空间的地址,根据所述第二数据库的物理空间的地址生成所述第一数据库的物理空间地址关系表,所述第一数据库的物理空间地址关系表包括所述索引信息与存储与所述索引信息对应的数据内容的物理空间地址的对应关系。
具体的,记录“学号10001”在c数据库中存储的物理空间地址,将索引信息“学号10001”和所述“学号10001”在c数据库中存储的物理空间地址存储在r数据库的物理空间地址关系表中,生成r数据库新的物理空间地址关系表。
本发明实施例通过在第一数据库中插入新数据时,创建临时物理空间;若所述内存数据库需要优化的情况下,在所述临时物理空间设置所述第一数据库的标识,并将所述新数据写入所述临时物理空间;获取所述新数据的索引信息,并和所述第一数据库的索引信息以及第二数据库的索引信息进行匹配;若所述新数据的索引信息与所述第一数据库的索引信息以及与所述第二数据库的索引信息均匹配,则判断所述临时物理空间存储的数据内容和与所述索引信息对应的所述第二数据库的数据内容是否相同;若相同,则删除所述临时物理空间存储的所述新数据,将所述第二数据库存储的与所述索引信息对应的所述第二数据库的数据内容的第一字段设置为合并标识;记录与所述索引信息对应的所述第二数据库的数据内容存储在所述第二数据库的物理空间的地址,根据所述第二数据库的物理空间的地址生成所述第一数据库的物理空间地址关系表,所述第一数据库的物理空间地址关系表包括所述索引信息与存储与所述索引信息对应的数据内容的物理空间地址的对应关系,当存在两个数据模型定义相同的数据库时,通过裁剪掉一个数据库,然后将两个数据库中相同的数据进行合并,保留不同的数据,通过减少数据本身占用的空间,以及数据模型定义占用的空间,来达到优化数据库内存的目的。同时通过是否使能内存优化,来兼容多个不同的项目。采用本方法对内存进行优化,大约可以节约30%内存。
参考2,图2为优化内存数据库的方法第二实施例的流程示意图。
在第二实施例中,在步骤103之前还包括:
步骤105,获取所述新数据的索引信息,并和所述第一数据库的索引信息以及第二数据库的索引信息进行匹配;
步骤106,若所述新数据的索引信息与所述第一数据库的索引信息以及与所述第二数据库的索引信息均匹配,则判断所述临时物理空间存储的数据内容和与所述索引信息对应的所述第二数据库的数据内容是否相同。
在第二实施例中,在步骤101之后还包括:
步骤107,判断所述内存数据库是否需要优化;
在所述内存数据库不需要优化的情况下,将所述新数据写入所述临时物理空间,获取所述新数据的索引信息,和所述第一数据库的索引信息进行匹配;若匹配,则根据所述临时物理空间的地址生成所述第一数据库的物理空间地址关系表,返回插入成功;若不匹配,则删除所述临时物理空间存储的所述新数据,返回插入失败的信息。
具体的,若在r数据库中写入“学号为10001的张三”时,判断当前内存数据库不需要数据优化,则从所述临时物理空间的第一字段开始写入所述“学号为10001的张三”,若r库中没有“学号10001”的信息,则根据临时物理空间地址生成r数据库的物理空间地址关系表,返回插入成功;若已存在“学号10001”的信息,则删除所述“学号为10001的张三”的数据,返回插入失败的信息。
参照图3,图3为优化内存数据库的方法第三实施例的流程示意图。
在第三实施例中,在步骤103之后还包括:
步骤108,若所述新数据的索引信息与所述第一数据库的索引信息不匹配,则删除所述临时物理空间存储的所述新数据,并且返回插入失败的信息;
若所述新数据的索引信息与所述第一数据库的索引信息匹配,但与所述第二数据库的索引信息不匹配,则根据所述临时物理空间的地址生成所述第一数据库的物理空间地址关系表。
具体的,若在r数据库中写入“学号为10001的张三”时,在r数据库中已存在“学号为10001”索引信息,则删除所述“学号为10001的张三”的数据,返回插入失败的信息。若在r数据库中写入“学号为10001的张三”时,在r数据库中没有“学号为10001”索引信息,且c数据库中未有“学号为10001”索引信息,则将存储“学号为10001的张三”的临时物理空间地址与所述“学号为10001”索引信息的对应关系存储在r数据库的物理空间地址关系表中。
参照图4,图4为优化内存数据库的方法第四实施例的流程示意图。
在第四实施例中,在步骤104之后还包括:
步骤109,若所述临时物理空间存储的数据内容和与所述索引信息对应的所述第二数据库的数据内容不相同,则根据所述临时物理空间的地址生成所述第一数据库的物理空间地址关系表。
具体的,若在r数据库中写入“学号为10001的张三”时,c库中存储“学号为10001”的索引信息,但数据内容不是“张三”,则将存储“学号为10001的张三”的临时物理空间地址与所述“学号为10001”索引信息的对应关系存储在r数据库的物理空间地址关系表中。
参照图5,图5为优化内存数据库的方法第五实施例的流程示意图。
在第一至第四实施例中,所述方法还包括:
步骤501,在修改所述第一数据库的第一数据的情况下,判断所述内存数据库是否存在优化;
具体的,若修改r数据库的数据内容“学号为10003的王五”时,判断是否需要优化所述内存数据库。
步骤502,若所述内存数据库存在优化,则获取所述第一数据的标识;
具体的,若所述内存数据库需要优化,则获取所述r数据库的数据内容“学号为10003的王五”的标识。
步骤503,若所述第一数据的标识为合并标识,则将所述合并标识修改为所述第一数据库的标识;
具体的,若所述“学号为10003的王五”的标识为rc标识,则将所述rc标识修改为r标识。
步骤504,创建新的物理空间,将所述第一数据的数据内容写入所述新的物理空间,并在所述新的物理空间中设置所述第二数据库的标识,并根据所述新的物理空间的地址生成所述第二数据库的物理空间地址关系表;
具体的,创建新的物理空间,将所述“学号为10003的王五”写入所述新的物理空间,并在所述新的物理空间地址中设置c数据库的标识,并将“学号为10003”的索引信息与所述新的物理空间地址的对应关系存储在所述c数据库的物理空间地址的关系表中。
步骤505,将所述第一数据的修改数据存储在新的临时物理空间中;
具体的,若需要将存储在r数据库中的“学号为10003的王五”的数据内容修改为“学号为10003的王六”,则将“学号为10003的王六”存储在新的临时物理空间中。
步骤506,判断所述第一数据的修改数据的索引信息与所述第一数据库的索引信息是否相同,若是,则删除所述第一数据库中的所述第一数据,将所述第一数据的修改数据写入所述第一数据在所述第一数据库中的物理空间,并根据所述第一数据在所述第一数据库中的物理空间地址生成所述第一数据库的物理空间地址关系表。
具体的,判断r数据库中是否存储“学号为10003的王六”的索引信息“学号为10003”,若r数据库中存储“学号为10003的王六”的索引信息“学号为10003”,则删除r数据库中的“学号为10003的王五”对应的地址关系表,将“学号为10003的王六”写入所述“学号为10003的王五”的物理空间,并根据“学号为10003的王六”在r数据库中的物理空间地址生成r数据库的物理空间地址关系表,并且需要删除新的临时物理空间。
参照图6,图6为优化内存数据库的方法第六实施例的流程示意图。
在第五实施例中,步骤502之后还包括:
步骤507,若所述第一数据的标识为所述第二数据库标识,则返回修改所述第一数据失败的信息;
若所述第一数据的标识为所述第一数据库的标识,则创建新的临时物理空间,将所述第一数据的修改数据存储在新的临时物理空间中
判断所述第一数据的修改数据的索引信息与所述第一数据库的索引信息是否相同,若是,则删除所述第一数据库中的所述第一数据,将所述第一数据的修改数据写入所述第一数据在所述第一数据库中的物理空间,并根据所述第一数据在所述第一数据库中的物理空间地址生成所述第一数据库的物理空间地址关系表。
具体的,若r数据库中存储“学号为10003的王五”为c数据库的标识,则返回修改所述r数据库失败的信息。若r数据库中存储“学号为10003的王五”为r数据库的标识,则创建新的临时物理空间,将“学号为10003的王六”存储在新的临时物理空间中。判断r数据库中是否存储“学号为10003的王六”的索引信息,若是,则删除r数据库中的学号为“10003的王五”对应的地址关系表,将“学号为10003的王六”写入r数据库在所述r数据库中的物理空间中,并根据“学号为10003的王六”在r数据库中的物理空间地址生成r数据库的物理空间地址关系表。
参照图7,图7为优化内存数据库的方法第七实施例的流程示意图。
在第六实施例中,步骤507之后还包括:
步骤508,若所述内存数据库存在优化,判断所述第一数据的修改数据在所述第二数据库中是否存在相同的数据内容;
若是,则删除所述第二数据库中的相同数据内容,并根据所述第一数据的修改数据在所述第一数据库中的物理空间地址生成所述第二数据库的物理空间地址关系表,将所述第一数据的修改数据的标识设置为合并标识;
删除所述新的临时物理空间存储的数据内容。
具体的,若所述内存数据库存在优化,判断“学号为10003的王六”在c数据库中是否存储相同的数据内容,若是,则删除c数据库的数据内容,并将“学号为10003的王六”存储在r数据库中的物理空间地址生成c数据库的物理空间地址关系表,并将所述“学号为10003的王六”的标识设置为合并标识,删除所述新的临时物理空间。
参照图8,图8为优化内存数据库的方法第八实施例的流程示意图。
在第六或者七实施例中,步骤507之后还包括:
步骤509,若所述内存数据库不存在优化,则删除所述新的临时物理空间存储的数据内容;
若所述内存数据库存在优化且所述第一数据的修改数据在所述第二数据库中不存在相同的数据内容,则删除所述新的临时物理空间存储的数据内容。
具体的,若所述内存数据库不存在优化,则删除所述新的临时物理空间。若所述内存数据库存在优化且“学号为10003的王六”在所述c数据库中不存在相同的数据内容,则删除所述新的临时物理空间存储的数据内容。
参照图9,图9为优化内存数据库的方法第九实施例的流程示意图。
在第一至第四实施例的基础上,所述方法还包括:
步骤901,在删除所述第一数据库的第二数据的情况下,判断所述内存数据库是否存在优化;
具体的,假设需要删除r数据库的“学号为10006的张六”的情况下,判断所述内存数据库是否存在优化。
步骤902,若所述内存数据库存在优化且所述第二数据的标识为所述合并标识,则将所述第二数据的标识修改为所述第二数据库的标识;
具体的,若所述内存数据库存在优化且所述“学号为10006的张六”的标识为rc标识,则将所述“学号为10006的张六”修改为c标识。
步骤903,删除所述第一数据库中的与所述第二数据对应的物理空间地址关系表。
具体的,删除r数据库中的“学号为10006”的索引标识与所述“学号为10006的张六”对应的物理空间地址关系。
参照图10,图10为优化内存数据库的方法第十实施例的流程示意图。
在第九实施例的基础上,步骤901之后还包括:
步骤904,所述内存数据库不存在优化,则删除所述第一数据库中的第二数据,并删除所述第一数据库中的与所述第二数据对应的物理空间地址关系表;
具体的,若所述内存数据库不存在优化,则直接删除r数据库中的“学号为10006”并删除r数据库中的与所述“学号为10006”对应的物理空间地址关系。
若所述第二数据的标识为所述第一数据库的标识,则删除所述第一数据库中的第二数据,并删除所述第一数据库中的与所述第二数据对应的物理空间地址关系表;
具体的,若所述“学号为10006的张六”的标识为r标识,则删除所述r数据库中的“学号为10006的张六”,并删除所述r数据库中的与所述“学号为10006的张六”对应的物理空间地址关系。
若所述第二数据的标识为所述第二数据库的标识,则返回删除所述第二数据失败的信息。
具体的,若所述“学号为10006的张六”的标识为c标识,则返回删除所述“学号为10006的张六”失败的信息。
参照图11,图11为优化内存数据库的方法第十一实施例的流程示意图。
在第一至第四实施例的基础上,所述方法还包括:
步骤1101,在查找所述第一数据库的记录的情况下,将游标移到第一记录;
具体的,在查找r数据库的记录的情况下,先将游标移到第一记录。
步骤1102,若所述第一记录的标识为所述第一数据库的标识或者合并标识,则发送所述第一记录的信息;
具体的,若所述第一记录的标识为r数据库的标识或者rc标识,则发送所述第一记录的信息。
步骤1103,若所述第一记录的标识为所述第二数据库的标识,则将游标移到下一个记录。
具体的,若所述第一记录的标识为c数据库的标识,则将游标移到下一个记录。
本发明提供一种优化内存数据库的装置。
参考图12,图12为本发明优化内存数据库的装置第一实施例的功能模块示意图。所述装置包括:
第一创建单元1201,用于在第一数据库中插入新数据时,创建临时物理空间;
具体的,开启内存优化时,创建一个数据库,一份用户表定义,用户表上创建两份索引,即检索c库的索引和检索r库的索引。
每张用户表中增加rcflag字段,rcflag字段有三种取值,分别为c、r和rc,c代表记录属于c数据库,r代表记录属于r数据库,rc代表记录既属于c数据库又属于r数据库。以第一数据库为r数据库,第二数据库为c数据库为例进行说明。假设要在r数据库中插入一条学生信息,如学号为10001的张三,索引为学号,先创建临时物理空间存储“学号为10001的张三”的数据。
第一设置单元1202,用于若所述内存数据库需要优化的情况下,在所述临时物理空间设置所述第一数据库的标识,并将所述新数据写入所述临时物理空间;
具体的,可以将所述临时物理空间的第一字段设置为rcflag字段,并赋值rcflag字段为r,用以标识所述临时物理空间存储的新数据需要插入r数据库。
获取“学号为10001的张三”的数据的索引信息为“学号10001”,并和r数据库和c数据库的索引信息进行匹配,即从r数据库和c数据库中查找“学号10001”的信息。
若索引信息“学号10001”在r数据库和c数据库中均匹配,则判断所述临时物理空间储存的新数据和以“学号10001”为索引信息在c库中找到的记录中的数据内容是否相同。
第一删除单元1203,用于若所述新数据的索引信息与所述第一数据库的索引信息以及与所述第二数据库的索引信息均匹配,且所述临时物理空间存储的数据内容和与所述索引信息对应的所述第二数据库的数据内容相同,则删除所述临时物理空间存储的所述新数据,将所述第二数据库存储的与所述索引信息对应的所述第二数据库的数据内容的第一字段设置为合并标识;
具体的,若以“学号10001”为索引信息在c数据库中存储的数据内容为“学号为10001的张三”,则将“学号10001”的索引信息在c数据库中存储的数据内容中的rcflag字段设置为rc。
第一生成单元1204,用于记录与所述索引信息对应的所述第二数据库的数据内容存储在所述第二数据库的物理空间的地址,根据所述第二数据库的物理空间的地址生成所述第一数据库的物理空间地址关系表,所述第一数据库的物理空间地址关系表包括所述索引信息与存储与所述索引信息对应的数据内容的物理空间地址的对应关系。
具体的,记录“学号10001”在c数据库中存储的物理空间地址,将索引信息“学号10001”和所述“学号10001”在c数据库中存储的物理空间地址存储在r数据库的物理空间地址关系表中,生成r数据库新的物理空间地址关系表。
参考13,图13为优化内存数据库的装置第二实施例的功能模块示意图。
所述装置还包括:
第一获取单元1301,用于获取所述新数据的索引信息,并和所述第一数据库的索引信息以及第二数据库的索引信息进行匹配;
第一判断单元1302,用于若所述新数据的索引信息与所述第一数据库的索引信息以及与所述第二数据库的索引信息均匹配,则判断所述临时物理空间存储的数据内容和与所述索引信息对应的所述第二数据库的数据内容是否相同。
优选地,所述装置还包括第二判断单元1303,用于判断所述内存数据库是否需要优化;
写入单元1303,用于在所述内存数据库不需要优化的情况下,将所述新数据写入所述临时物理空间。
具体的,若在r数据库中写入“学号为10001的张三”时,判断当前内存数据库不需要数据优化,则从所述临时物理空间的第一字段开始写入所述“学号为10001的张三”。
参考14,图14为优化内存数据库的装置第三实施例的功能模块示意图。
所述装置还包括:
第二删除单元1401,用于若所述新数据的索引信息与所述第一数据库的索引信息不匹配,则删除所述临时物理空间存储的所述新数据,并且返回插入失败的信息;
第二生成单元1402,用于若所述新数据的索引信息与所述第一数据库的索引信息匹配,但与所述第二数据库的索引信息不匹配,则根据所述临时物理空间的地址生成所述第一数据库的物理空间地址关系表。
具体的,若在r数据库中写入“学号为10001的张三”时,在r数据库中已存在“学号为10001”索引信息,则删除所述“学号为10001的张三”的数据,返回插入失败的信息。若在r数据库中写入“学号为10001的张三”时,在r数据库中没有“学号为10001”索引信息,且c数据库中未有“学号为10001”索引信息,则将存储“学号为10001的张三”的临时物理空间地址与所述“学号为10001”索引信息的对应关系存储在r数据库的物理空间地址关系表中。
参考15,图15为优化内存数据库的装置第四实施例的功能模块示意图。
所述装置还包括:
第三生成单元1501,用于若所述临时物理空间存储的数据内容和与所述索引信息对应的所述第二数据库的数据内容不相同,则根据所述临时物理空间的地址生成所述第一数据库的物理空间地址关系表。
具体的,若在r数据库中写入“学号为10001的张三”时,c库中存储“学号为10001”的索引信息,但数据内容不是“张三”,则将存储“学号为10001的张三”的临时物理空间地址与所述“学号为10001”索引信息的对应关系存储在r数据库的物理空间地址关系表中。
参考16,图16为优化内存数据库的装置第五实施例的功能模块示意图。
在第一至第四实施例中,所述装置还包括:
第二判断单元1601,用于在修改所述第一数据库的第一数据的情况下,判断所述内存数据库是否存在优化;
具体的,若修改r数据库的数据内容“学号为10003的王五”时,判断是否需要优化所述内存数据库。
第二获取单元1602,用于若所述内存数据库存在优化,则获取所述第一数据的标识;
具体的,若所述内存数据库需要优化,则获取所述r数据库的数据内容“学号为10003的王五”的标识。
第一修改单元1603,用于若所述第一数据的标识为合并标识,则将所述合并标识修改为所述第一数据库的标识;
具体的,若所述“学号为10003的王五”的标识为rc标识,则将所述rc标识修改为r标识。
第二创建单元1604,用于创建新的物理空间,将所述第一数据的数据内容写入所述新的物理空间,并在所述新的物理空间中设置所述第二数据库的标识,并根据所述新的物理空间的地址生成所述第二数据库的物理空间地址关系表;
具体的,创建新的物理空间,将所述“学号为10003的王五”写入所述新的物理空间,并在所述新的物理空间地址中设置c数据库的标识,并将“学号为10003”的索引信息与所述新的物理空间地址的对应关系存储在所述c数据库的物理空间地址的关系表中。
存储单元1605,用于将所述第一数据的修改数据存储在新的临时物理空间中;
具体的,若需要将存储在r数据库中的“学号为10003的王五”的数据内容修改为“学号为10003的王六”,则将“学号为10003的王六”存储在新的临时物理空间中。
第四生成单元1606,用于判断所述第一数据的修改数据的索引信息与所述第一数据库的索引信息是否相同,若是,则删除所述第一数据库中的所述第一数据,将所述第一数据的修改数据写入所述第一数据在所述第一数据库中的物理空间,并根据所述第一数据在所述第一数据库中的物理空间地址生成所述第一数据库的物理空间地址关系表。
具体的,判断r数据库中是否存储“学号为10003的王六”的索引信息“学号为10003”,若r数据库中存储“学号为10003的王六”的索引信息“学号为10003”,则删除r数据库中的“学号为10003的王五”,将“学号为10003的王六”写入所述“学号为10003的王五”的物理空间,并根据“学号为10003的王六”在r数据库中的物理空间地址生成r数据库的物理空间地址关系表。
参考17,图17为优化内存数据库的装置第六实施例的功能模块示意图。
在第五实施例中,所述装置还包括:
返回单元1701,用于若所述第一数据的标识为所述第二数据库标识,则返回修改所述第一数据失败的信息;
第三创建单元1702,用于若所述第一数据的标识为所述第一数据库的标识,则创建新的临时物理空间,将所述第一数据的修改数据存储在新的临时物理空间中;
第五生成单元1703,用于判断所述第一数据的修改数据的索引信息与所述第一数据库的索引信息是否相同,若是,则删除所述第一数据库中的所述第一数据,将所述第一数据的修改数据写入所述第一数据在所述第一数据库中的物理空间,并根据所述第一数据在所述第一数据库中的物理空间地址生成所述第一数据库的物理空间地址关系表。
具体的,若r数据库中存储“学号为10003的王五”为c数据库的标识,则返回修改所述r数据库失败的信息。若r数据库存储所述“学号为10003”的索引信息,则创建新的临时物理空间,将“学号为10003的王六”存储在新的临时物理空间中。判断r数据库中是否存储“学号为10003的王六”的索引信息,若是,则删除r数据库中的学号为10003的王五”,将“学号为10003的王六”写入r数据库在所述r数据库中的物理空间中,并根据“学号为10003的王六”在r数据库中的物理空间地址生成r数据库的物理空间地址关系表。
参考18,图18为优化内存数据库的装置第七实施例的功能模块示意图。
在第六实施例中,所述装置还包括:
第三判断单元1801,用于若所述内存数据库存在优化,判断所述第一数据的修改数据在所述第二数据库中是否存在相同的数据内容;
第六生成单元1802,用于删除所述第二数据库中的相同数据内容,并根据所述第一数据的修改数据在所述第一数据库中的物理空间地址生成所述第二数据库的物理空间地址关系表,将所述第一数据的修改数据的标识设置为合并标识;
第三删除单元1803,用于删除所述新的临时物理空间存储的数据内容。
具体的,若所述内存数据库存在优化,判断“学号为10003的王六”在c数据库中是否存储相同的数据内容,若是,则删除c数据库的数据内容,并将“学号为10003的王六”存储在r数据库中的物理空间地址生成c数据库的物理空间地址关系表,并将所述“学号为10003的王六”的标识设置为合并标识,删除所述新的临时物理空间存储的“学号为10003的王五”。
参考19,图19为优化内存数据库的装置第八实施例的功能模块示意图。
在第六或者第七实施例中,所述装置还包括第三删除单元1901:
所述第三删除单元1901还用于:
若所述内存数据库不存在优化,则删除所述新的临时物理空间存储的数据内容;
若所述内存数据库存在优化且所述第一数据的修改数据在所述第二数据库中不存在相同的数据内容,则删除所述新的临时物理空间存储的数据内容。
具体的,若所述内存数据库不存在优化,则删除所述新的临时物理空间存储的“学号为10003的王五”,若所述内存数据库存在优化且“学号为10003的王六”在所述c数据库中不存在相同的数据内容,则删除所述新的临时物理空间存储的数据内容。
参考20,图20为优化内存数据库的装置第九实施例的功能模块示意图。
在第一至第四实施例的基础上,所述装置还包括:
第四判断单元2001,用于在删除所述第一数据库的第二数据的情况下,判断所述内存数据库是否存在优化;
具体的,假设需要删除r数据库的“学号为10006的张六”的情况下,判断所述内存数据库是否存在优化。
第二修改单元2002,用于若所述内存数据库存在优化且所述第二数据的标识为所述合并标识,则将所述第二数据的标识修改为所述第二数据库的标识;
具体的,若所述内存数据库存在优化且所述“学号为10006的张六”的标识为rc标识,则将所述“学号为10006的张六”修改为c标识。
第三删除单元2003,用于删除所述第一数据库中的与所述第二数据对应的物理空间地址关系表。
具体的,删除r数据库中的“学号为10006”的索引标识与所述“学号为10006的张六”对应的物理空间地址关系。
参考21,图21为优化内存数据库的装置第十实施例的功能模块示意图。
在第九实施例的基础上,所述第三删除单元2101,还用于:
若所述内存数据库不存在优化,则删除所述第一数据库中的第二数据,并删除所述第一数据库中的与所述第二数据对应的物理空间地址关系表;
具体的,若所述内存数据库不存在优化,则直接删除r数据库中的“学号为10006”并删除r数据库中的与所述“学号为10006”对应的物理空间地址关系。
若所述第二数据的标识为所述第一数据库的标识,则删除所述第一数据库中的第二数据,并删除所述第一数据库中的与所述第二数据对应的物理空间地址关系表;
具体的,若所述“学号为10006的张六”的标识为r标识,则删除所述r数据库中的“学号为10006的张六”,并删除所述r数据库中的与所述“学号为10006的张六”对应的物理空间地址关系。
若所述第二数据的标识为所述第二数据库的标识,则返回删除所述第二数据失败的信息。
具体的,若所述“学号为10006的张六”的标识为c标识,则返回删除所述“学号为10006的张六”失败的信息。
参考22,图22为优化内存数据库的装置第十一实施例的功能模块示意图。
在第一至第四实施例的基础上,所述装置还包括查找单元2201,所述查找单元2201用于:
在查找所述第一数据库的记录的情况下,将游标移到第一记录;
具体的,在查找r数据库的记录的情况下,先将游标移到第一记录。
若所述第一记录的标识为所述第一数据库的标识或者合并标识,则发送所述第一记录的信息;
具体的,若所述第一记录的标识为r数据库的标识或者rc标识,则发送所述第一记录的信息。
若所述第一记录的标识为所述第二数据库的标识,则将游标移到下一个记录。
具体的,若所述第一记录的标识为c数据库的标识,则将游标移到下一个记录。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (24)
1.一种优化内存数据库的方法,其特征在于,所述方法包括:
在第一数据库中插入新数据时,创建临时物理空间;
若所述内存数据库需要优化的情况下,在所述临时物理空间设置所述第一数据库的标识,并将所述新数据写入所述临时物理空间;
若所述新数据的索引信息与所述第一数据库的索引信息以及与所述第二数据库的索引信息均匹配,且所述临时物理空间存储的数据内容和与所述索引信息对应的所述第二数据库的数据内容相同,则删除所述临时物理空间存储的所述新数据,将所述第二数据库存储的与所述索引信息对应的所述第二数据库的数据内容的第一字段设置为合并标识;
记录与所述索引信息对应的所述第二数据库的数据内容存储在所述第二数据库的物理空间的地址,根据所述第二数据库的物理空间的地址生成所述第一数据库的物理空间地址关系表,所述第一数据库的物理空间地址关系表包括所述索引信息与存储与所述索引信息对应的数据内容的物理空间地址的对应关系。
2.根据权利要求1所述的方法,其特征在于,所述删除所述临时物理空间存储的所述新数据,将所述第二数据库存储的与所述索引信息对应的所述第二数据库的数据内容的第一字段设置为合并标识之前,还包括:
获取所述新数据的索引信息,并和所述第一数据库的索引信息以及第二数据库的索引信息进行匹配;
若所述新数据的索引信息与所述第一数据库的索引信息以及与所述第二数据库的索引信息均匹配,则判断所述临时物理空间存储的数据内容和与所述索引信息对应的所述第二数据库的数据内容是否相同。
3.根据权利要求1所述的方法,其特征在于,所述在第一数据库中插入新数据时,创建临时物理空间之后,还包括:
判断所述内存数据库是否需要优化;
在所述内存数据库不需要优化的情况下,将所述新数据写入所述临时物理空间,获取所述新数据的索引信息,和所述第一数据库的索引信息进行匹配;若匹配,则根据所述临时物理空间的地址生成所述第一数据库的物理空间地址关系表,返回插入成功;若不匹配,则删除所述临时物理空间存储的所述新数据,返回插入失败的信息。
4.根据权利要求1所述的方法,其特征在于,所述获取所述新数据的索引信息,并和所述第一数据库的索引信息以及第二数据库的索引信息进行匹配之后,还包括:
若所述新数据的索引信息与所述第一数据库的索引信息不匹配,则删除所述临时物理空间存储的所述新数据,并且返回插入失败的信息;
若所述新数据的索引信息与所述第一数据库的索引信息匹配,但与所述第二数据库的索引信息不匹配,则根据所述临时物理空间的地址生成所述第一数据库的物理空间地址关系表。
5.根据权利要求1所述的方法,其特征在于,所述判断所述临时物理空间存储的数据内容和与所述索引信息对应的所述第二数据库的数据内容是否相同之后,还包括:
若所述临时物理空间存储的数据内容和与所述索引信息对应的所述第二数据库的数据内容不相同,则根据所述临时物理空间的地址生成所述第一数据库的物理空间地址关系表。
6.根据权利要求1至5任意一项所述的方法,其特征在于,所述方法还包括:
在修改所述第一数据库的第一数据的情况下,判断所述内存数据库是否存在优化;
若所述内存数据库存在优化,则获取所述第一数据的标识;
若所述第一数据的标识为合并标识,则将所述合并标识修改为所述第一数据库的标识;
创建新的物理空间,将所述第一数据的数据内容写入所述新的物理空间,并在所述新的物理空间中设置所述第二数据库的标识,并根据所述新的物理空间的地址生成所述第二数据库的物理空间地址关系表;
将所述第一数据的修改数据存储在新的临时物理空间中;
判断所述第一数据的修改数据的索引信息与所述第一数据库的索引信息是否相同,若是,则删除所述第一数据库中的所述第一数据,将所述第一数据的修改数据写入所述第一数据在所述第一数据库中的物理空间,并根据所述第一数据在所述第一数据库中的物理空间地址生成所述第一数据库的物理空间地址关系表。
7.根据权利要求6所述的方法,其特征在于,所述获取所述第一数据的标识之后,还包括:
若所述第一数据的标识为所述第二数据库标识,则返回修改所述第一数据失败的信息;
若所述第一数据的标识为所述第一数据库的标识,则创建新的临时物理空间,将所述第一数据的修改数据存储在新的临时物理空间中;
判断所述第一数据的修改数据的索引信息与所述第一数据库的索引信息是否相同,若是,则删除所述第一数据库中的所述第一数据,将所述第一数据的修改数据写入所述第一数据在所述第一数据库中的物理空间,并根据所述第一数据在所述第一数据库中的物理空间地址生成所述第一数据库的物理空间地址关系表。
8.根据权利要求7所述的方法,其特征在于,所述若所述第一字段的信息为所述第一数据库的标识,根据所述第一数据在所述第一数据库中的物理空间地址生成所述第一数据库的物理空间地址关系表之后,还包括:
若所述内存数据库存在优化,判断所述第一数据的修改数据在所述第二数据库中是否存在相同的数据内容;
若是,则删除所述第二数据库中的相同数据内容,并根据所述第一数据的修改数据在所述第一数据库中的物理空间地址生成所述第二数据库的物理空间地址关系表,将所述第一数据的修改数据的标识设置为合并标识;
删除所述新的临时物理空间存储的数据内容。
9.根据权利要求7或8所述的方法,其特征在于,所述方法还包括:
若所述内存数据库不存在优化,则删除所述新的临时物理空间存储的数据内容;
若所述内存数据库存在优化且所述第一数据的修改数据在所述第二数据库中不存在相同的数据内容,则删除所述新的临时物理空间存储的数据内容。
10.根据权利要求1至5任意一项所述的方法,其特征在于,所述方法还包括:
在删除所述第一数据库的第二数据的情况下,判断所述内存数据库是否存在优化;
若所述内存数据库存在优化且所述第二数据的标识为所述合并标识,则将所述第二数据的标识修改为所述第二数据库的标识;
删除所述第一数据库中的与所述第二数据对应的物理空间地址关系表。
11.根据权利要求10所述的方法,其特征在于,所述方法还包括:
若所述内存数据库不存在优化,则删除所述第一数据库中的第二数据,并删除所述第一数据库中的与所述第二数据对应的物理空间地址关系表;
若所述第二数据的标识为所述第一数据库的标识,则删除所述第一数据库中的第二数据,并删除所述第一数据库中的与所述第二数据对应的物理空间地址关系表;
若所述第二数据的标识为所述第二数据库的标识,则返回删除所述第二数据失败的信息。
12.根据权利要求1至5任意一项所述的方法,其特征在于,所述方法还包括:
在查找所述第一数据库的记录的情况下,将游标移到第一记录;
若所述第一记录的标识为所述第一数据库的标识或者合并标识,则发送所述第一记录的信息;
若所述第一记录的标识为所述第二数据库的标识,则将游标移到下一个记录。
13.一种优化内存数据库的装置,其特征在于,所述装置包括:
第一创建单元,用于在第一数据库中插入新数据时,创建临时物理空间;
第一设置单元,用于若所述内存数据库需要优化的情况下,在所述临时物理空间设置所述第一数据库的标识,并将所述新数据写入所述临时物理空间;
第一删除单元,用于若所述新数据的索引信息与所述第一数据库的索引信息以及与所述第二数据库的索引信息均匹配,且所述临时物理空间存储的数据内容和与所述索引信息对应的所述第二数据库的数据内容相同,则删除所述临时物理空间存储的所述新数据,将所述第二数据库存储的与所述索引信息对应的所述第二数据库的数据内容的第一字段设置为合并标识;
第一生成单元,用于记录与所述索引信息对应的所述第二数据库的数据内容存储在所述第二数据库的物理空间的地址,根据所述第二数据库的物理空间的地址生成所述第一数据库的物理空间地址关系表,所述第一数据库的物理空间地址关系表包括所述索引信息与存储与所述索引信息对应的数据内容的物理空间地址的对应关系。
14.根据权利要求13所述的装置,其特征在于,所述装置还包括:
第一获取单元,用于获取所述新数据的索引信息,并和所述第一数据库的索引信息以及第二数据库的索引信息进行匹配;
第一判断单元,用于若所述新数据的索引信息与所述第一数据库的索引信息以及与所述第二数据库的索引信息均匹配,则判断所述临时物理空间存储的数据内容和与所述索引信息对应的所述第二数据库的数据内容是否相同。
15.根据权利要求13所述的装置,其特征在于,所述装置还包括第二判断单元,用于判断所述内存数据库是否需要优化;
写入单元,用于在所述内存数据库不需要优化的情况下,将所述新数据写入所述临时物理空间。
16.根据权利要求13所述的装置,其特征在于,所述装置还包括:
第二删除单元,用于若所述新数据的索引信息与所述第一数据库的索引信息不匹配,则删除所述临时物理空间存储的所述新数据,并且返回插入失败的信息;
第二生成单元,用于若所述新数据的索引信息与所述第一数据库的索引信息匹配,但与所述第二数据库的索引信息不匹配,则根据所述临时物理空间的地址生成所述第一数据库的物理空间地址关系表。
17.根据权利要求13所述的装置,其特征在于,所述装置还包括第三生成单元,用于若所述临时物理空间存储的数据内容和与所述索引信息对应的所述第二数据库的数据内容不相同,则根据所述临时物理空间的地址生成所述第一数据库的物理空间地址关系表。
18.根据权利要求13至17任意一项所述的装置,其特征在于,所述装置还包括:
第二判断单元,用于在修改所述第一数据库的第一数据的情况下,判断所述内存数据库是否存在优化;
第二获取单元,用于若所述内存数据库存在优化,则获取所述第一数据的标识;
第一修改单元,用于若所述第一数据的标识为合并标识,则将所述合并标识修改为所述第一数据库的标识;
第二创建单元,用于创建新的物理空间,将所述第一数据的数据内容写入所述新的物理空间,并在所述新的物理空间中设置所述第二数据库的标识,并根据所述新的物理空间的地址生成所述第二数据库的物理空间地址关系表;
存储单元,用于将所述第一数据的修改数据存储在新的临时物理空间中;
第四生成单元,用于判断所述第一数据的修改数据的索引信息与所述第一数据库的索引信息是否相同,若是,则删除所述第一数据库中的所述第一数据,将所述第一数据的修改数据写入所述第一数据在所述第一数据库中的物理空间,并根据所述第一数据在所述第一数据库中的物理空间地址生成所述第一数据库的物理空间地址关系表。
19.根据权利要求18所述的装置,其特征在于,所述装置还包括:
返回单元,用于若所述第一数据的标识为所述第二数据库标识,则返回修改所述第一数据失败的信息;
第三创建单元,用于若所述第一数据的标识为所述第一数据库的标识,则创建新的临时物理空间,将所述第一数据的修改数据存储在新的临时物理空间中;
第五生成单元,用于判断所述第一数据的修改数据的索引信息与所述第一数据库的索引信息是否相同,若是,则删除所述第一数据库中的所述第一数据,将所述第一数据的修改数据写入所述第一数据在所述第一数据库中的物理空间,并根据所述第一数据在所述第一数据库中的物理空间地址生成所述第一数据库的物理空间地址关系表。
20.根据权利要求19所述的装置,其特征在于,所述装置还包括:
第三判断单元,用于若所述内存数据库存在优化,判断所述第一数据的修改数据在所述第二数据库中是否存在相同的数据内容;
第六生成单元,用于删除所述第二数据库中的相同数据内容,并根据所述第一数据的修改数据在所述第一数据库中的物理空间地址生成所述第二数据库的物理空间地址关系表,将所述第一数据的修改数据的标识设置为合并标识;
第三删除单元,用于删除所述新的临时物理空间存储的数据内容。
21.根据权利要求19或20所述的装置,其特征在于,所述第三删除单元还用于:
若所述内存数据库不存在优化,则删除所述新的临时物理空间存储的数据内容;
若所述内存数据库存在优化且所述第一数据的修改数据在所述第二数据库中不存在相同的数据内容,则删除所述新的临时物理空间存储的数据内容。
22.根据权利要求13至17任意一项所述的装置,其特征在于,所述装置还包括:
第四判断单元,用于在删除所述第一数据库的第二数据的情况下,判断所述内存数据库是否存在优化;
第二修改单元,用于若所述内存数据库存在优化且所述第二数据的标识为所述合并标识,则将所述第二数据的标识修改为所述第二数据库的标识;
第三删除单元,用于删除所述第一数据库中的与所述第二数据对应的物理空间地址关系表。
23.根据权利要求22所述的装置,其特征在于,所述第三删除单元,还用于:
若所述内存数据库不存在优化,则删除所述第一数据库中的第二数据,并删除所述第一数据库中的与所述第二数据对应的物理空间地址关系表;
若所述第二数据的标识为所述第一数据库的标识,则删除所述第一数据库中的第二数据,并删除所述第一数据库中的与所述第二数据对应的物理空间地址关系表;
若所述第二数据的标识为所述第二数据库的标识,则返回删除所述第二数据失败的信息。
24.根据权利要求13至17任意一项所述的装置,其特征在于,所述装置还包括查找单元,所述查找单元用于:
在查找所述第一数据库的记录的情况下,将游标移到第一记录;
若所述第一记录的标识为所述第一数据库的标识或者合并标识,则发送所述第一记录的信息;
若所述第一记录的标识为所述第二数据库的标识,则将游标移到下一个记录。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410837463.3A CN105786939A (zh) | 2014-12-26 | 2014-12-26 | 优化内存数据库的方法及装置 |
PCT/CN2015/080111 WO2016101528A1 (zh) | 2014-12-26 | 2015-05-28 | 内存数据库的数据处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410837463.3A CN105786939A (zh) | 2014-12-26 | 2014-12-26 | 优化内存数据库的方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105786939A true CN105786939A (zh) | 2016-07-20 |
Family
ID=56149100
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410837463.3A Withdrawn CN105786939A (zh) | 2014-12-26 | 2014-12-26 | 优化内存数据库的方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN105786939A (zh) |
WO (1) | WO2016101528A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107145582A (zh) * | 2017-05-09 | 2017-09-08 | 深圳Tcl新技术有限公司 | 数据库游标的控制方法与数据库系统 |
CN107452209A (zh) * | 2017-07-26 | 2017-12-08 | 江苏本能科技有限公司 | 射频识别与视频识别整合方法及系统、设备、存储介质 |
CN113748388A (zh) * | 2019-03-01 | 2021-12-03 | 西门子股份公司 | 用于以计算机辅助的方式优化工具对库空间的占用的方法和设备 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114003491A (zh) * | 2021-10-15 | 2022-02-01 | 赛轮集团股份有限公司 | 试验设备参数修改方法、装置、电子设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101315628A (zh) * | 2007-06-01 | 2008-12-03 | 华为技术有限公司 | 内存数据库系统及实现内存数据库的方法和装置 |
CN103309819A (zh) * | 2013-05-30 | 2013-09-18 | 苏州亮智科技有限公司 | 嵌入式系统及其中的内存安全管理方法 |
US20130275649A1 (en) * | 2012-04-16 | 2013-10-17 | Renmin University Of China | Access Optimization Method for Main Memory Database Based on Page-Coloring |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102024051B (zh) * | 2010-12-17 | 2012-12-05 | 北京世纪互联工程技术服务有限公司 | 分布式内存数据库数据更新方法 |
CN102542054B (zh) * | 2011-12-29 | 2017-02-08 | 厦门雅迅网络股份有限公司 | 一种利用缓存表来提高数据库数据插入性能的方法 |
-
2014
- 2014-12-26 CN CN201410837463.3A patent/CN105786939A/zh not_active Withdrawn
-
2015
- 2015-05-28 WO PCT/CN2015/080111 patent/WO2016101528A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101315628A (zh) * | 2007-06-01 | 2008-12-03 | 华为技术有限公司 | 内存数据库系统及实现内存数据库的方法和装置 |
US20130275649A1 (en) * | 2012-04-16 | 2013-10-17 | Renmin University Of China | Access Optimization Method for Main Memory Database Based on Page-Coloring |
CN103309819A (zh) * | 2013-05-30 | 2013-09-18 | 苏州亮智科技有限公司 | 嵌入式系统及其中的内存安全管理方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107145582A (zh) * | 2017-05-09 | 2017-09-08 | 深圳Tcl新技术有限公司 | 数据库游标的控制方法与数据库系统 |
CN107452209A (zh) * | 2017-07-26 | 2017-12-08 | 江苏本能科技有限公司 | 射频识别与视频识别整合方法及系统、设备、存储介质 |
CN113748388A (zh) * | 2019-03-01 | 2021-12-03 | 西门子股份公司 | 用于以计算机辅助的方式优化工具对库空间的占用的方法和设备 |
Also Published As
Publication number | Publication date |
---|---|
WO2016101528A1 (zh) | 2016-06-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102270225B (zh) | 数据变更日志监控方法和数据变更日志监控装置 | |
CN102521416B (zh) | 数据关联查询方法和数据关联查询装置 | |
CN104182484B (zh) | 一种实现HBase数据与Java域对象映射的方法和装置 | |
US9753960B1 (en) | System, method, and computer program for dynamically generating a visual representation of a subset of a graph for display, based on search criteria | |
CN103390015A (zh) | 基于统一索引的海量数据联合存储方法及检索方法 | |
CN103200293A (zh) | 一种导入通讯录文件过程中自动合并重名联系人的方法 | |
CN104765731A (zh) | 数据库查询优化方法和设备 | |
CN104331446A (zh) | 一种基于内存映射的海量数据预处理方法 | |
CN102708203A (zh) | 一种基于xml元数据的数据库动态管理方法 | |
CN105786939A (zh) | 优化内存数据库的方法及装置 | |
CN102279749A (zh) | 一种代码归并方法和设备 | |
CN103631842A (zh) | 用于检测多列复合键列集合的方法和系统 | |
CN105701251A (zh) | 一种基于对象定义的数据导出导入方法 | |
CN103593449A (zh) | 一种数据库资源回收方法及系统 | |
CN103778239A (zh) | 一种多数据库数据管理方法及系统 | |
CN105468785A (zh) | 一种计算机文件管理方法 | |
CN102467375A (zh) | 一种生成客户端界面的方法及装置 | |
CN105653716A (zh) | 一种基于分类-属性-值的数据库构造方法和构造系统 | |
CN110941629A (zh) | 元数据处理方法、装置、设备及计算机可读存储介质 | |
CN103123651B (zh) | 一种查看多个同类文件的方法、装置和移动设备 | |
CN102004787A (zh) | 基于办公软件插件的多应用场景表单合并的方法 | |
CN101408882A (zh) | 一种授权文档的检索方法和系统 | |
KR101588375B1 (ko) | 데이터베이스 관리 방법 및 데이터베이스 관리 시스템 | |
CN101388018A (zh) | 电脑辅助设计文件的管理方法 | |
CN101908174A (zh) | 处理图纸文件中零部件对象信息的方法、装置及eap系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20160720 |