CN117785842A - 数据库管理方法、装置及设备 - Google Patents
数据库管理方法、装置及设备 Download PDFInfo
- Publication number
- CN117785842A CN117785842A CN202311815599.XA CN202311815599A CN117785842A CN 117785842 A CN117785842 A CN 117785842A CN 202311815599 A CN202311815599 A CN 202311815599A CN 117785842 A CN117785842 A CN 117785842A
- Authority
- CN
- China
- Prior art keywords
- column
- row
- data
- new
- default value
- 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
- 238000007726 management method Methods 0.000 title claims abstract description 37
- 238000000034 method Methods 0.000 claims abstract description 29
- 238000004590 computer program Methods 0.000 claims description 7
- 230000004044 response Effects 0.000 abstract description 8
- 230000008569 process Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000012550 audit Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种数据库管理方法、装置及设备,可用于数据库技术领域。上述方法包括:在接收到对数据库中的行存表添加列的操作指令时,确定该操作指令对应的新增列的缺省值;确定该缺省值相对于行存表中已存在的每一行数据是否均相同;当该缺省值相对于行存表中已存在的每一行数据均相同时,跳过对行存表中已存在的每一行数据的重写操作,并将上述缺省值和新增列的添加时间记录到数据库的系统表中。本申请可以有效提升在数据库在添加列时的执行速度,降低添加列时对数据库响应速度的影响。
Description
技术领域
本申请涉及数据库查询技术领域,尤其涉及一种数据库管理方法、装置及设备。
背景技术
在关系型数据库中,一个关系表的数据如果按行存储,即每行数据作为一个单元存储在连续的存储空间中,包含了该行所有字段的数据,则称该表为行存表。
由于行存数据的存储方式,对行存表进行添加列操作时,可能会触发重写原有存量数据。特别是当指定新增列的位置在已有列之间时,需要将新增列的值填充到每一行数据的特定位置,当原表中数据量很大时,这样的数据重写操作会耗时很长,且需要占用较多系统资源,从而会影响数据库的响应速度。
发明内容
本申请提供一种数据库管理方法、装置及设备,可以有效提升在添加列时的执行速度,降低添加列时对数据库响应速度的影响。
第一方面,本申请提供一种数据库管理方法,该方法包括:
在接收到对所述数据库中的行存表添加列的操作指令时,确定所述操作指令对应的新增列的缺省值;
确定所述缺省值相对于所述行存表中已存在的每一行数据是否均相同;
当所述缺省值相对于所述行存表中已存在的每一行数据均相同时,跳过对所述行存表中已存在的每一行数据的重写操作,将所述缺省值和所述新增列的添加时间记录到所述数据库的系统表中。
在一些实施例中,所述方法还包括:
当所述缺省值相对于所述行存表中已存在的任意两行数据不相同时,根据所述操作指令,对所述行存表中已存在的每一行数据执行所述重写操作。
在一些实施例中,所述确定所述操作指令对应的新增列的缺省值,包括:
解析所述操作指令,确定所述新增列的属性信息,所述属性信息包括所述新增列的名称、数据类型、数据长度中的至少一项;
根据所述属性信息,确定所述新增列的缺省值。
在一些实施例中,所述将所述缺省值和所述新增列的添加时间记录到所述数据库的系统表中,包括:
在所述系统表中创建一个新的条目;
将所述缺省值与所述添加时间存储在所述条目中的相应字段中;
更新所述数据库的元数据,以完成所述新增列的添加。
在一些实施例中,所述更新所述数据库的元数据,以完成所述新增列的添加之后,所述方法还包括:
在接收到对所述新增列的数据写入操作指令时,根据所述数据写入操作指令指定的值组装新数据;
将所述新数据写入所述新增列中。
在一些实施例中,所述方法还包括:
在接收到对所述行存表的访问请求时,确定所述访问请求访问的目标列是否为所述新增列;
若所述目标列为所述新增列,且所述访问请求访问的行数据的生成时间位于所述新增列的添加时间之前,则根据所述系统表中存储的所述缺省值,获取所述目标列的数据;
若所述目标列不属于所述新增列,或者所述目标列为所述新增列、且所述访问请求访问的行数据的生成时间位于所述新增列的添加时间之后,则从所述行存表中获取所述目标列的数据。
第二方面,本申请提供一种数据库管理装置,该装置包括:
确定模块,用于在接收到对所述数据库中的行存表添加列的操作指令时,确定所述操作指令对应的新增列的缺省值;
判断模块,用于确定所述缺省值相对于所述行存表中已存在的每一行数据是否均相同;
记录模块,用于当所述缺省值相对于所述行存表中已存在的每一行数据均相同时,跳过对所述行存表中已存在的每一行数据的重写操作,将所述缺省值和所述新增列的添加时间记录到所述数据库的系统表中。
第三方面,本申请提供一种电子设备,包括:处理器,以及与所述处理器通信连接的存储器;
所述存储器用于存储计算机执行指令;
所述处理器用于执行所述存储器存储的计算机执行指令,以实现如第一方面提供的数据库管理方法。
第四方面,本申请提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时,实现如第一方面提供的数据库管理方法。
第五方面,本申请提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时,实现如第一方面提供的数据库管理方法。
本申请提供的数据库管理方法、装置及设备,对于在行存表指定位置添加列的操作,如果新增列的缺省值对于已存在的每一行数据是一个相同的值时,将上述缺省值和新增列的添加时间记录到数据库的系统表中,并跳过对行存表中已存在的每一行数据的重写操作,由此可以有效提升在添加列时的执行速度,降低添加列时对数据库响应速度的影响。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1为本申请实施例中提供的一种数据库管理方法的步骤流程示意图一;
图2为本申请实施例中提供的一种数据库管理方法的步骤流程示意图二;
图3为本申请实施例中提供的一种数据库管理方法的步骤流程示意图三;
图4为本申请实施例中提供的一种数据库管理装置的程序模块示意图;
图5为本申请实施例提供的一种电子设备的硬件结构示意图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对申请开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。此外,虽然本申请中的公开内容按照示范性一个或几个实例来介绍,但应理解,可以就这些公开内容的各个方面也可以单独构成一个完整实施方式。
需要说明的是,本申请中对于术语的简要说明,仅是为了方便理解接下来描述的实施方式,而不是意图限定本申请的实施方式。除非另有说明,这些术语应当按照其普通和通常的含义理解。
此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖但不排他的包含,例如,包含了一系列组件的产品或设备不必限于清楚地列出的那些组件,而是可包括没有清楚地列出的或对于这些产品或设备固有的其它组件。
本申请实施例中使用的术语“模块”,是指任何已知或后来开发的硬件、软件、固件、人工智能、模糊逻辑或硬件或/和软件代码的组合,能够执行与该元件相关的功能。
以下对本申请实施例中涉及的部分术语进行解释:
关系型数据库:指采用了关系模型来组织数据的数据库,关系模型可以简单理解为二维表格模型,而一个关系型数据库就是由二维表及其之间的关系组成的一个数据组织。关系型数据库以行和列的形式存储数据,以便于用户理解,关系型数据库这一系列的行和列被称为表,一组表组成了数据库。
行存表:即将数据按行存储的表。在关系型数据库中,数据通常以表格的形式进行存储,每一行代表一个记录,每一列代表一个属性。而行存表就是将每一行的数据连续存储在磁盘上,这样可以快速读取一行中的所有列数据。
缺省值:一种计算机术语,指在无决策者干预情况下,对于决策或应用软件、计算机程序的系统参数的自动选择,也可以默认选项或默认值。
在关系型数据库中,由于行存数据的存储方式,对行存表进行添加列操作时,可能会触发重写原有存量数据。特别是当指定新增列的位置在已有列之间时,需要将新增列的值填充到每一行数据的特定位置,当原表中数据量很大时,这样的数据重写操作会耗时很长,且需要占用较多系统资源,从而会影响数据库的响应速度。
面对上述技术问题,本申请实施例中提供了一种数据库列变更方法,对于行存表指定位置添加列的操作,如果新增列的缺省值对于已存在的每一行数据是一个相同的值时,可以跳过添加列过程中的数据重写过程,从而极大地提高修改表的执行速度,降低DDL语句对于业务处理速度的影响,保障了数据库对应用的响应速度。
以下通过具体实施例对本申请所示的技术方案进行详细说明。需要说明的是,以下几个实施例可以单独存在,也可以相互结合,对于相同或相似的内容,在不同的实施例中不再重复说明。
参照图1,图1为本申请实施例中提供的一种数据库管理方法的步骤流程示意图一,在本申请一些实施例中,上述数据库管理方法包括:
S101、在接收到对数据库中的行存表添加列的操作指令时,确定该操作指令对应的新增列的缺省值。
在一些实施方式中,在接收到对数据库中的行存表添加列的操作指令时,先对该操作指令进行解析,确定要添加的新列的名称、数据类型和其它可能的属性。之后根据上述操作指令和业务需求,确定新列的缺省值。
可选地,上述缺省值可以是固定的值,也可以是动态计算得出的值。例如,如果新列是日期类型,并且需要让所有新记录的日期默认为当前日期,那么可以将缺省值设置为当前日期。
在一些实施方式中,在确定缺省值后,可以对其进行验证,包括验证逻辑的一致性、验证该缺省值是否满足任何现有的数据库约束(如NOT NULL约束),以及验证该值是否符合业务需求。
S102、确定上述缺省值相对于行存表中已存在的每一行数据是否均相同。若是,则执行S103,若否,则执行S104。
在一些实施方式中,确定上述缺省值相对于行存表中已存在的每一行数据是否相同,可以通过以下步骤进行:
获取现有数据:首先,从数据库中查询行存表中的所有现有数据。可选地,这可以通过执行SELECT语句来完成。
比较缺省值与现有数据:对于每一行现有数据,将新列的缺省值与该行的对应列值进行比较,如果缺省值与该行的对应列值相同,则说明缺省值对于该行是相同的。
S103、跳过对行存表中已存在的每一行数据的重写操作,将上述缺省值和新增列的添加时间记录到数据库的系统表中。
在一些实施方式中,当上述缺省值相对于行存表中已存在的每一行数据均相同时,为了优化性能和减少不必要的操作,可以跳过对行存表中已存在的每一行数据的重写操作。取而代之的是,将上述缺省值和新增列的添加时间记录到数据库的系统表中。由此可以保留对新列添加的跟踪记录,同时避免对现有数据进行冗余的更新。可选地,可以包括以下步骤:
记录缺省值和添加时间:在数据库的系统表或专门的日志表中,为新添加的列创建一个记录,这个记录应包含以下信息:新增列的名称、缺省值、列的添加时间(通常是时间戳)、其他相关的元数据(如执行此操作的用户、操作类型等)。
更新数据库模式:尽管跳过了对现有数据的重写,但仍然需要更新数据库模式以反映新列的添加。可选地,可以通过执行ALTER TABLE命令来完成,该命令将新列添加到行存表的结构定义中。
通知相关系统和服务:如果有其它系统或服务依赖于该数据库,可能需要通知它们关于新列和缺省值的更改,由此确保了整个系统中的数据一致性和完整性。
通过上述方式,不仅可以避免对现有数据进行不必要的操作,还可以保留有关新列添加的完整历史记录,从而提高了数据库操作的效率和可靠性。
S104、根据上述操作指令,对行存表中已存在的每一行数据执行重写操作。
在一些实施方式中,当上述缺省值相对于行存表中已存在的任意两行数据不相同时,根据上述操作指令,需要对行存表中已存在的每一行数据执行重写操作。具体可以包括以下步骤:
解析操作指令:解析操作指令,了解要执行的重写操作的细节和要求。
确定重写操作的具体内容:根据操作指令,确定需要对行存表中的每一行数据执行的具体重写操作,这可能包括更新现有数据的列值,根据新的缺省值或其他逻辑对数据进行转换或计算等。
执行重写操作:使用适当的SQL命令或数据库操作方法,对行存表中已存在的每一行数据进行重写操作,确保按照操作指令的要求准确执行重写操作,并处理可能出现的任何错误或异常情况。
验证重写结果:在执行重写操作后,验证重写结果是否符合预期。可以执行SELECT语句或其他查询来检查重写后的数据是否正确,并确保没有数据丢失或错误。
记录操作日志:在执行重写操作时,记录相关的操作日志。这包括操作的日期、时间、执行者、操作类型、影响的行数据等详细信息,这有助于跟踪和审计数据库的更改历史。
本申请提供的数据库管理方法,对于在行存表指定位置添加列的操作,如果新增列的缺省值对于已存在的每一行数据是一个相同的值时,将上述缺省值和新增列的添加时间记录到数据库的系统表中,并跳过对行存表中已存在的每一行数据的重写操作,由此可以有效提升在添加列时的执行速度,降低添加列时对数据库响应速度的影响。
参照图2,图2为本申请实施例中提供的一种数据库管理方法的步骤流程示意图二,在本申请一些实施例中,上述数据库管理方法包括:
S201、接收对数据库中的行存表添加列的操作指令。
S202、确定上述操作指令对应的新增列的缺省值。
在一些实施方式中,可以解析上述操作指令,确定新增列的属性信息,该属性信息包括所述新增列的名称、数据类型、数据长度中的至少一项;根据上述属性信息,确定新增列的缺省值。
S203、确定缺省值相对于行存表中已存在的每一行数据是否均相同。若是,则执行S204,若否,则执行S206。
S204、跳过对行存表中已存在的每一行数据的重写操作,将上述缺省值和新增列的添加时间记录到数据库的系统表中。
在一些实施方式中,可以在上述系统表中创建一个新的条目,然后将上述缺省值与添加时间存储在上述条目中的相应字段中。
S205、更新数据库的元数据,以完成新增列的添加。
在一些实施方式中,在完成所述新增列的添加之后,若接收到对新增列的数据写入操作指令,则根据该数据写入操作指令指定的值组装新数据,并将该新数据写入新增列中。
S206、根据操作指令,对行存表中已存在的每一行数据执行重写操作。
本申请提供的数据库管理方法,对于行存表在指定位置添加列的操作,首先计算新增列的缺省值,当新增列的缺省值对于已存在的每一行数据是一个相同的值时,可以将该缺省值和新增列的添加时间信息记录到系统表中,并跳过存量数据的重写,此时旧的数据行中并未存储新增列的值,由此可以有效提升在添加列时的执行速度。当后续上述行存表进行数据写入操作时,根据用户指定的值组装新数据并写入表中,即对于后续的插入、更新等操作,新增列的值会被按列顺序写入。
参照图3,图3为本申请实施例中提供的一种数据库管理方法的步骤流程示意图三,在本申请一些实施例中,上述数据库管理方法包括:
S301、接收对行存表的访问请求。
在一些实施方式中,当接收到对行存表的访问请求时,可以先解析接收到的访问请求,确定该访问请求的具体内容,包括要访问的表、行和列等。
S302、确定访问请求访问的目标列是否为新增列。若是,则执行S303,若否,则执行S305。
在一些实施方式中,可以通过比较目标列的名称与新增列的名称,来确定访问请求中指定的目标列是否为最近添加的新列。
S303、确定访问请求访问的行数据的生成时间是否位于新增列的添加时间之前。若是,则执行S304,若否,则执行S305。
在一些实施方式中,如果目标列是新增列,则需要检查访问请求中指定的行数据的生成时间,以确定在新增列被添加到表中之前还是之后该行数据被创建。
S304、根据系统表中存储的缺省值,获取目标列的数据。
在一些实施方式中,若目标列为新增列,且行数据的生成时间在新增列的添加时间之前,则这意味着在行数据生成时,该列还不存在。因此,系统不能从行存表中直接获取这个列的数据。在这种情况下,系统将根据系统表中存储的缺省值来获取目标列的数据,这个缺省值是在添加新列时设定的,用于填充那些在新列添加之前已经存在的行。
S305、从行存表中获取目标列的数据。
在一些实施方式中,若目标列不属于新增列,或者目标列为新增列但行数据的生成时间在新增列的添加时间之后,则系统可以直接从行存表中获取目标列的数据。对于第一种情况(目标列不是新增列),数据将按照常规方式从表中检索。对于第二种情况(目标列是新增列,但行数据是在新列添加后生成的),由于行数据包含了新列的实际值,因此也可以直接从表中检索。
最后,数据库系统将根据以上步骤获取的数据返回给发出访问请求的客户端或服务。
在本申请实施例中,在后续对于目标表的访问和计算过程中,在提取目标列时,判断该行数据的生成时间,如果提取的列是在该行数据生成之后添加的,则从系统表中获取该列的值,反之则直接从行中提取对应的值,从而实现对存量数据行的正确访问。这种处理方法确保了即使在表结构发生变化的情况下,系统也能准确地响应访问请求,提供一致和可靠的数据。同时,通过利用缺省值,它避免了由于表结构变化可能导致的数据不一致或丢失问题。
基于上述实施例中描述的内容,本申请实施例中还提供一种数据库管理装置,参照图4,图4为本申请实施例中提供的一种数据库管理装置的程序模块示意图,在一些实施方式中,上述数据库管理装置40包括:
确定模块401,用于在接收到对所述数据库中的行存表添加列的操作指令时,确定所述操作指令对应的新增列的缺省值。
判断模块402,用于确定所述缺省值相对于所述行存表中已存在的每一行数据是否均相同。
记录模块403,用于当所述缺省值相对于所述行存表中已存在的每一行数据均相同时,跳过对所述行存表中已存在的每一行数据的重写操作,将所述缺省值和所述新增列的添加时间记录到所述数据库的系统表中。
本申请提供的数据库管理装置,对于在行存表指定位置添加列的操作,如果新增列的缺省值对于已存在的每一行数据是一个相同的值时,将上述缺省值和新增列的添加时间记录到数据库的系统表中,并跳过对行存表中已存在的每一行数据的重写操作,由此可以有效提升在添加列时的执行速度,降低添加列时对数据库响应速度的影响。
在一些实施例中,所述装置还包括重写模块,用于:
当所述缺省值相对于所述行存表中已存在的任意两行数据不相同时,根据所述操作指令,对所述行存表中已存在的每一行数据执行所述重写操作。
在一些实施例中,确定模块401,用于:
解析所述操作指令,确定所述新增列的属性信息,所述属性信息包括所述新增列的名称、数据类型、数据长度中的至少一项;
根据所述属性信息,确定所述新增列的缺省值。
在一些实施例中,记录模块403,用于:
在所述系统表中创建一个新的条目;
将所述缺省值与所述添加时间存储在所述条目中的相应字段中;
更新所述数据库的元数据,以完成所述新增列的添加。
在一些实施例中,上述装置还包括写入模块,用于:
完成所述新增列的添加之后,若接收到对所述新增列的数据写入操作指令,则根据所述数据写入操作指令指定的值组装新数据;
将所述新数据写入所述新增列中。
在一些实施例中,上述装置还包括访问模块,用于:
在接收到对所述行存表的访问请求时,确定所述访问请求访问的目标列是否为所述新增列;
若所述目标列为所述新增列,且所述访问请求访问的行数据的生成时间位于所述新增列的添加时间之前,则根据所述系统表中存储的所述缺省值,获取所述目标列的数据;
若所述目标列不属于所述新增列,或者所述目标列为所述新增列、且所述访问请求访问的行数据的生成时间位于所述新增列的添加时间之后,则从所述行存表中获取所述目标列的数据。
需要说明的是,本申请实施例中确定模块401、判断模块402以及记录模块403具体执行的内容可以参阅上述实施例中描述的数据库管理方法中的各个步骤,此处不做赘述。
进一步的,基于上述实施例中所描述的内容,本申请实施例中还提供了一种电子设备,该电子设备包括至少一个处理器和存储器;其中,存储器存储计算机执行指令;上述至少一个处理器执行存储器存储的计算机执行指令,以实现如上述实施例中描述的数据库管理方法中的各个步骤。
为了更好的理解本申请实施例,参照图5,图5为本申请实施例提供的一种电子设备的硬件结构示意图。
如图5所示,本实施例的电子设备50包括:处理器501以及存储器502;其中:
存储器502,用于存储计算机执行指令;
处理器501,用于执行存储器存储的计算机执行指令,以实现上述实施例中描述的数据库管理方法中的各个步骤。
可选地,存储器502既可以是独立的,也可以跟处理器501集成在一起。
当存储器502独立设置时,该设备还包括总线503,用于连接所述存储器502和处理器501。
本申请实施例提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上实施例中描述的数据库管理方法中的各个步骤。
本申请实施例提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时,实现如上实施例中描述的数据库管理方法中的各个步骤。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个单元中。上述模块成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能模块的形式实现的集成的模块,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器执行本申请各个实施例所述方法的部分步骤。
应理解,上述处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合申请所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器可能包含高速存储器,也可能还包括非易失性存储,例如至少一个磁盘存储器,还可以为U盘、移动硬盘、只读存储器、磁盘或光盘等。
总线可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外部设备互连(Peripheral Component,PCI)总线或扩展工业标准体系结构(ExtendedIndustry Standard Architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,本申请附图中的总线并不限定仅有一根总线或一种类型的总线。
上述存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器,电可擦除可编程只读存储器,可擦除可编程只读存储器,可编程只读存储器,只读存储器,磁存储器,快闪存储器,磁盘或光盘。存储介质可以是通用或专用计算机能够存取的任何可用介质。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (10)
1.一种数据库管理方法,其特征在于,所述方法包括:
在接收到对所述数据库中的行存表添加列的操作指令时,确定所述操作指令对应的新增列的缺省值;
确定所述缺省值相对于所述行存表中已存在的每一行数据是否均相同;
当所述缺省值相对于所述行存表中已存在的每一行数据均相同时,跳过对所述行存表中已存在的每一行数据的重写操作,将所述缺省值和所述新增列的添加时间记录到所述数据库的系统表中。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述缺省值相对于所述行存表中已存在的任意两行数据不相同时,根据所述操作指令,对所述行存表中已存在的每一行数据执行所述重写操作。
3.根据权利要求1所述的方法,其特征在于,所述确定所述操作指令对应的新增列的缺省值,包括:
解析所述操作指令,确定所述新增列的属性信息,所述属性信息包括所述新增列的名称、数据类型、数据长度中的至少一项;
根据所述属性信息,确定所述新增列的缺省值。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述将所述缺省值和所述新增列的添加时间记录到所述数据库的系统表中,包括:
在所述系统表中创建一个新的条目;
将所述缺省值与所述添加时间存储在所述条目中的相应字段中;
更新所述数据库的元数据,以完成所述新增列的添加。
5.根据权利要求4所述的方法,其特征在于,所述更新所述数据库的元数据,以完成所述新增列的添加之后,所述方法还包括:
在接收到对所述新增列的数据写入操作指令时,根据所述数据写入操作指令指定的值组装新数据;
将所述新数据写入所述新增列中。
6.根据权利要求1-3任一项所述的方法,其特征在于,所述方法还包括:
在接收到对所述行存表的访问请求时,确定所述访问请求访问的目标列是否为所述新增列;
若所述目标列为所述新增列,且所述访问请求访问的行数据的生成时间位于所述新增列的添加时间之前,则根据所述系统表中存储的所述缺省值,获取所述目标列的数据;
若所述目标列不属于所述新增列,或者所述目标列为所述新增列、且所述访问请求访问的行数据的生成时间位于所述新增列的添加时间之后,则从所述行存表中获取所述目标列的数据。
7.一种数据库管理装置,其特征在于,所述装置包括:
确定模块,用于在接收到对所述数据库中的行存表添加列的操作指令时,确定所述操作指令对应的新增列的缺省值;
判断模块,用于确定所述缺省值相对于所述行存表中已存在的每一行数据是否均相同;
记录模块,用于当所述缺省值相对于所述行存表中已存在的每一行数据均相同时,跳过对所述行存表中已存在的每一行数据的重写操作,将所述缺省值和所述新增列的添加时间记录到所述数据库的系统表中。
8.一种电子设备,其特征在于,包括:处理器,以及与所述处理器通信连接的存储器;
所述存储器用于存储计算机执行指令;
所述处理器用于执行所述存储器存储的计算机执行指令,以实现如权利要求1-6任一项所述的数据库管理方法。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时,实现如权利要求1-6任一项所述的数据库管理方法。
10.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时,实现如权利要求1-6任一项所述的数据库管理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311815599.XA CN117785842A (zh) | 2023-12-26 | 2023-12-26 | 数据库管理方法、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311815599.XA CN117785842A (zh) | 2023-12-26 | 2023-12-26 | 数据库管理方法、装置及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117785842A true CN117785842A (zh) | 2024-03-29 |
Family
ID=90388707
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311815599.XA Pending CN117785842A (zh) | 2023-12-26 | 2023-12-26 | 数据库管理方法、装置及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117785842A (zh) |
-
2023
- 2023-12-26 CN CN202311815599.XA patent/CN117785842A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8341132B2 (en) | System and method for applying deltas in a version control system | |
US10678784B2 (en) | Dynamic column synopsis for analytical databases | |
CN107391544B (zh) | 列式存储数据的处理方法、装置、设备及计算机储存介质 | |
CN111090663A (zh) | 事务并发控制方法、装置、终端设备及介质 | |
CN112084161A (zh) | 基于数据库的数据处理方法、装置以及可读存储介质 | |
US20180300147A1 (en) | Database Operating Method and Apparatus | |
CN112434015A (zh) | 数据存储的方法、装置、电子设备及介质 | |
US9898468B2 (en) | Single pass file system repair with copy on write | |
KR102025222B1 (ko) | 글로벌하게 분산된 환경에서 상호의존적인 기업 데이터 일관성을 보존하기 위한 시스템 및 방법 | |
CN117785842A (zh) | 数据库管理方法、装置及设备 | |
CN111813880B (zh) | 一种国土空间规划项目管理方法、系统及存储介质 | |
CN110704488B (zh) | 用于管理数据的方法及相应的系统、计算机设备和介质 | |
CN113760875A (zh) | 一种数据处理方法、装置、电子设备和存储介质 | |
CN114511314A (zh) | 一种支付账户管理的方法、装置、计算机设备和存储介质 | |
US11556519B2 (en) | Ensuring integrity of records in a not only structured query language database | |
KR101737575B1 (ko) | 자동 생성된 sql 구문 기반의 데이터 검증 방법 및 장치 | |
US20050044090A1 (en) | Computer system and program | |
CN116431654B (zh) | 基于湖仓一体化的数据存储方法、装置、介质和计算设备 | |
US8423532B1 (en) | Managing data indexed by a search engine | |
US20230153327A1 (en) | Loading data in a target database system using different synchronization programs | |
CN114880322B (zh) | 一种金融数据列式存储方法、系统、设备及存储介质 | |
EP2284749B1 (en) | Method, computer program and device for executing actions using data sets | |
US10521314B2 (en) | Cross-referenced irregular field storage in databases | |
CN117453707A (zh) | 数据更新方法、装置、电子设备及存储介质 | |
CN113918597A (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 |