数据库操作方法、系统、装置、服务器及存储介质
文献发布时间:2023-06-19 10:41:48
技术领域
本发明实施例涉及计算机领域,尤其涉及一种数据库操作方法、系统、装置、服务器及存储介质。
背景技术
互联网行业信息量巨大,为了满足数据查询需求,需要对海量数据进行存储。
现有的海量数据存储方案为:将一个表中的主要字段保留在主表,其他信息拆分到同一个服务器上的扩展表中存储。
但是,在实现本发明的过程中,发现现有技术中至少存下以下技术问题:上述方案,主表及扩展表中的数据还是存储在同一个服务器中,在高并发的数据查询时,查询效率较低。
发明内容
本发明提供一种数据库操作方法、系统、装置、服务器及存储介质,以解决目前的数据库操作方法中查询效率较低的技术问题。
第一方面,本发明实施例提供一种数据库操作方法,应用于目标服务器中,包括:
接收路由设备发送的第一查询语句;其中,所述第一查询语句包括待查询第一对象标识,所述路由设备连接包括所述目标服务器在内的多个服务器,所述目标服务器为所述路由设备根据第一对象标识与服务器之间的对应关系,确定的所述待查询第一对象标识对应的服务器;每个所述服务器中存储有索引表以及与所述索引表对应的明细表,所述索引表用于指示所述服务器对应的第一对象标识与第二对象标识的映射关系,所述明细表用于指示第二对象标识与明细信息的映射关系;
根据所述待查询第一对象标识,从所述目标服务器中存储的索引表中获取所述待查询第一对象标识对应的目标第二对象标识;
根据所述目标第二对象标识,从所述目标服务器中存储的明细表中获取所述目标第二对象标识对应的第一目标明细信息。
第二方面,本发明实施例提供一种数据库操作系统,包括:
路由设备以及与所述路由设备连接的多个服务器;
所述路由设备获取第一查询语句;其中,所述第一查询语句包括待查询第一对象标识;
所述路由设备根据第一对象标识与服务器之间的对应关系,确定所述多个服务器中所述待查询第一对象标识对应的目标服务器;其中,每个所述服务器中存储有索引表以及与所述索引表对应的明细表,所述索引表用于指示所述服务器对应的第一对象标识与第二对象标识的映射关系,所述明细表用于指示第二对象标识与明细信息的映射关系;
所述路由设备向所述目标服务器发送所述第一查询语句;
所述目标服务器用于执行如第一方面所述的数据库操作方法。
第三方面,本发明实施例提供一种数据库操作装置,所述数据库操作装置设置于目标服务器中,包括:
接收模块,用于接收路由设备发送的第一查询语句;其中,所述第一查询语句包括待查询第一对象标识,所述路由设备连接包括所述目标服务器在内的多个服务器,所述目标服务器为所述路由设备根据第一对象标识与服务器之间的对应关系,确定的所述待查询第一对象标识对应的服务器;每个所述服务器中存储有索引表以及与所述索引表对应的明细表,所述索引表用于指示所述服务器对应的第一对象标识与第二对象标识的映射关系,所述明细表用于指示第二对象标识与明细信息的映射关系;
第一获取模块,用于根据所述待查询第一对象标识,从所述目标服务器中存储的索引表中获取所述待查询第一对象标识对应的目标第二对象标识;
第二获取模块,用于根据所述目标第二对象标识,从所述目标服务器中存储的明细表中获取所述目标第二对象标识对应的第一目标明细信息。
第四方面,本发明实施例还提供了一种服务器,所述服务器包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面提供的数据库操作方法。
第五方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如第一方面提供的数据库操作方法。
本发明实施例提供一种数据库操作方法、系统、装置、服务器及存储介质,该方法包括:接收路由设备发送的第一查询语句,其中,第一查询语句包括待查询第一对象标识,路由设备连接包括目标服务器在内的多个服务器,目标服务器为路由设备根据第一对象标识与服务器之间的对应关系,确定的待查询第一对象标识对应的服务器;每个服务器中存储有索引表以及与索引表对应的明细表,索引表用于指示服务器对应的第一对象标识与第二对象标识的映射关系,明细表用于指示第二对象标识与明细信息的映射关系;根据待查询第一对象标识,从目标服务器中存储的索引表中获取待查询第一对象标识对应的目标第二对象标识;根据目标第二对象标识,从目标服务器中存储的明细表中获取目标第二对象标识对应的第一目标明细信息。该数据库操作方法中,一方面,多个服务器中分别存储对应的第一对象标识相关的数据,可以减少单个服务器的压力,避免查询时出现瓶颈,能够实现高并发查询,另一方面,在每个服务器内部,采用索引表及明细表存储数据的方式,可以实现快速查询,提高了查询效率。因此,本实施例提供的数据库操作方法可以实现高并发的快速查询。
附图说明
图1为本发明一个实施例提供的数据库操作系统的结构示意图;
图2为本发明一个实施例提供的数据库操作方法的流程示意图;
图3为本发明提供的数据库操作方法中第一对象标识与服务器之间的对应关系;
图4为本发明提供的数据库操作方法中索引表及明细表的一种示意图;
图5为本发明提供的数据库操作方法中索引表的另一种示意图;
图6为图2所示实施例提供的数据库操作方法的信息交互示意图;
图7为本发明另一个实施例提供的数据库操作方法的流程示意图;
图8为本发明提供的数据库操作方法中写入数据的示意图;
图9为图7所示实施例提供的数据库操作方法的信息交互示意图;
图10为本发明又一个实施例提供的数据库操作方法的流程示意图;
图11为本发明提供的数据库操作方法中修改数据的示意图;
图12为图10所示实施例提供的数据库操作方法的信息交互示意图;
图13为本发明再一个实施例提供的数据库操作方法的流程示意图;
图14为图13所示实施例提供的数据库操作方法的信息交互示意图;
图15为本发明一个实施例提供的数据库操作装置的结构示意图;
图16为本发明一个实施例提供的服务器的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
图1为本发明一个实施例提供的数据库操作系统的结构示意图。如图1所示,该系统包括:路由设备11以及与路由设备11连接的多个服务器12。本实施例中将数据存储在多个服务器12中。本实施例中存储的数据包括:第一对象标识、第二对象标识以及第二对象标识对应的明细信息。第一对象标识与服务器之间具有对应关系。为了提高查询效率,在每个服务器内部,将数据存储在两个表中,这两个表为:索引表及与索引表对应的明细表。索引表用于指示服务器对应的第一对象标识与第二对象标识的映射关系,明细表用于指示第二对象标识与明细信息的映射关系。换句话说,本实施例提供的数据库操作系统中,一方面,将数据存储在多个服务器中存储,减少单个服务器的压力,另一方面,在服务器内部,采用索引表及明细表存储数据的方式,以提高查询效率。
基于上述数据库操作系统,本实施例提高一种数据库操作方法,以提高数据库查询效率。以下详细描述本实施例提供的数据库操作方法。
图2为本发明一个实施例提供的数据库操作方法的流程示意图。本实施例适用于对数据库进行查询的场景中。本实施例可以由数据库操作装置来执行,该数据库操作装置可以由软件和/或硬件的方式实现,该数据库操作装置可以集成于目标服务器中。如图2所示,本实施例提供的数据库操作方法包括如下步骤:
步骤201:接收路由设备发送的第一查询语句。
其中,第一查询语句包括待查询第一对象标识。路由设备连接包括目标服务器在内的多个服务器。目标服务器为路由设备根据第一对象标识与服务器之间的对应关系,确定的待查询第一对象标识对应的服务器。每个服务器中存储有索引表以及与索引表对应的明细表。索引表用于指示服务器对应的第一对象标识与第二对象标识的映射关系。明细表用于指示第二对象标识与明细信息的映射关系。
具体地,本实施例中的路由设备为可以根据第一对象标识与服务器之间的对应关系,实现确定待查询第一对象标识对应的目标服务器的设备。路由设备可以接收第一查询语句。本实施例中的第一查询语句可以是用户设备发送的查询语句或者运营、维护人员设备发送的查询语句。
第一对象标识与服务器之间的对应关系是预先确定的。路由设备在确定目标服务器时,可以将该对应关系中与待查询第一对象标识对应的服务器确定为目标服务器。图3为本发明提供的数据库操作方法中第一对象标识与服务器之间的对应关系。如图3所示,每个第一对象标识只对应一个服务器。每个服务器中存储有索引表及明细表。
可选地,可以根据第一对象标识的尾部的预设比特位数的数据确定对应的服务器。更具体地,假设服务器的数量为2
目标服务器接收路由设备发送的第一查询语句。基于之前的描述可知,目标服务器中存储有索引表及与索引表对应的明细表。索引表用于指示目标服务器对应的第一对象标识与第二对象标识的映射关系。明细表用于指示第二对象标识与明细信息的映射关系。
示例性地,本实施例中的第一对象标识可以为用户标识,第二对象标识可以为营销信息标识。以实现营销场景下的海量数据存储、查询等操作。本实施例中的用户标识可以为用户个人识别密码(Personal Identification Number,PIN)。
更具体地,营销信息可以为优惠券。明细信息包括以下至少一项:优惠券的类型、优惠券的面额、优惠券的使用条件、优惠券对应的退券规则以及优惠券的状态。其中,退券规则指的是用户在使用优惠券后又发生退货行为,该已被使用的优惠券是否会回退给用户的规则。优惠券的状态包括:优惠券已使用状态、优惠券未使用状态以及优惠券使用中状态。
步骤202:根据待查询第一对象标识,从目标服务器中存储的索引表中获取待查询第一对象标识对应的目标第二对象标识。
步骤203:根据目标第二对象标识,从目标服务器中存储的明细表中获取目标第二对象标识对应的第一目标明细信息。
具体地,本实施例中为了提高目标服务器的查询效率,可以采用先查询索引表后查询明细表的方式进行查询。在步骤202中,目标服务器可以从其存储的索引表中获取到待查询第一对象标识对应的目标第二对象标识。之后,在步骤203中,再基于步骤202中查询到的目标第二对象标识,从其存储的明细表中获取目标第二对象标识对应的第一目标明细信息。在这个过程中,由于索引表中没有存储明细信息,存储的数据量较少,可以较快地从索引表中查询到目标第二对象标识。之后,基于目标第二对象标识,可以从明细表中较快地查询出目标第二对象标识对应的第一目标明细信息。这种查询方式的查询效率较高。并且,可以在高并发查询的场景中,实现较快的查询。
可选地,在步骤203之后,目标服务器可以向路由设备反馈第一目标明细信息。
图4为本发明提供的数据库操作方法中索引表及明细表的一种示意图。如图4,索引表中存储的字段包括:第一对象标识与第二对象标识。明细表中存储的字段包括:第二对象标识与明细信息。
当然,可以理解的是,索引表中也可以包括其他字段。例如,在第二对象为优惠券的场景中,索引表中还可以包括优惠券的相关时间、优惠券状态等字段。相对应地,为了提高查询效率,在这种场景中,第一查询语句中也可以包括如前所示的这些字段的信息。明细表中也可以包括其他字段。例如,明细表中还可以包括优惠券的相关时间等字段。
可选地,本实施例中可以将索引表存储在Elasticsearch中,将明细表存储在HBase中。其中,Elasticsearch能够达到实时搜索,稳定、可靠、快速以及安装使用方便。HBase是一个分布式的、面向列的开源数据库。由于Elasticsearch比较灵活,而HBase可以针对第二对象标识实现快速查询。因此,这种实现方式可以进一步提高查询的效率及可靠性。
图6为图2所示实施例提供的数据库操作方法的信息交互示意图。以下从路由设备与目标服务器交互的角度,描述本实施例提供的数据库操作方法。如图6所示,高数据库操作方法包括如下步骤:
步骤601:路由设备获取第一查询语句。
步骤602:路由设备根据第一对象标识与服务器之间的对应关系,确定多个服务器中待查询第一对象标识对应的目标服务器。
步骤603:路由设备向目标服务器发送第一查询语句。
步骤604:目标服务器接收路由设备发送的第一查询语句。
步骤605:目标服务器根据待查询第一对象标识,从目标服务器中存储的索引表中获取待查询第一对象标识对应的目标第二对象标识。
步骤606:目标服务器根据目标第二对象标识,从目标服务器中存储的明细表中获取目标第二对象标识对应的第一目标明细信息。
在一种更具体的实现方式中,第一查询语句还包括:待查询第一对象标识对应的目标第二对象的相关时间。相对应地,服务器的索引表包括多个子索引表。每个子索引表用于指示服务器对应的第一对象标识、第二对象标识以及第二对象的相关时间的映射关系。不同的子索引表中第二对象的相关时间形成的时间范围不同。也即,该实现方式中,按照第二对象的相关时间形成的时间范围的不同,将索引表拆分为多个子索引表,以对索引表进行细化。
示例性地,这里的时间范围可以是日、月等。也即,可以将同一日的第一对象标识、第二对象标识以及第二对象的相关时间的映射关系存储在同一个子索引表中。或者,可以将同一月的第一对象标识、第二对象标识以及第二对象的相关时间的映射关系存储在同一个子索引表中。
在第二对象为优惠券的场景中,第二对象的相关时间包括以下至少一项:优惠券的领取时间、优惠券的激活时间、优惠券的使用时间以及优惠券的到期日期。
图5为本发明提供的数据库操作方法中索引表的另一种示意图。如图5所示,索引表包括多个子索引表。假设第一对象为用户,第二对象为优惠券,第二对象的相关时间为优惠券的领取时间。不同的子索引表中优惠券的领取时间形成的时间范围不同。例如,子索引表5.1中,优惠券的领取时间都为2020.12.1日;子索引表5.2中,优惠券的领取时间都为2020.12.2日;子索引表5.3中,优惠券的领取时间都为2020.12.3日。
基于该实现方式,步骤202具体可以包括:根据待查询第一对象标识以及目标第二对象的相关时间,确定目标服务器中存储的索引表中待查询第一对象标识对应的子索引表;从待查询第一对象标识对应的子索引表中获取待查询第一对象标识对应的目标第二对象标识。这种实现方式,可以在查询时定位到子索引表中,基于子索引表获取目标第二对象标识,进一步提高查询效率。
可选地,本实施例提供的数据库操作方法还包括以下步骤:以预设的频率获取目标服务器中存储的每个子索引表中第二对象的相关时间;删除目标服务器中存储的子索引表以及明细表中对应的第二对象的相关时间满足预设条件的整条数据。示例性地,这里的预设条件可以为2020.1.1日之前,基于该预设条件,对应的是删除目标服务器中存储的子索引表以及明细表中对应的第二对象的相关时间为2020.1.1日之前的整条数据。整条数据的意思为索引表及明细表中与该满足预设条件的第二对象的相关时间对应的所有数据。
删除目标服务器中存储的子索引表以及明细表中对应的第二对象的相关时间满足预设条件的整条数据,可以在满足删除条件时,释放存储资源,可以提高资源利用率,并且,可以保证查询性能稳定。
需要说明的是,虽然明细表中有可能没有存储第二对象的相关时间,但是,由于第一对象标识、第二对象标识与第二对象的相关时间之间具有映射关系,且明细表用于指示第二对象标识与明细信息的映射关系,因此,可以看出明细表中的第二对象标识以及明细信息与第二对象的相关时间之间也具有映射关系。
在一种具体的场景中,第一对象为用户,第二对象为优惠券,索引表可以包括优惠券实例表的索引表以及优惠券操作日志表的索引表,明细表可以包括优惠券实例表的明细表以及优惠券操作日志表的明细表。那么,在这种场景中,第一查询语句中可以包括索引表的表名,以确定是要查询优惠券实例表的索引表还是查询优惠券操作日志表的索引表。优惠券实例表与优惠券操作日志表包括的初始字段相同,不同之处在于,优惠券操作日志表中的字段只会增加,不会修改和删除。例如,消费优惠券时,会在优惠券操作日志表(索引表或者明细表中,这里不做限定)中增加一个消费优惠券的数据。
本实施例提供的数据库操作方法,包括:接收路由设备发送的第一查询语句,其中,第一查询语句包括待查询第一对象标识,路由设备连接包括目标服务器在内的多个服务器,目标服务器为路由设备根据第一对象标识与服务器之间的对应关系,确定的待查询第一对象标识对应的服务器;每个服务器中存储有索引表以及与索引表对应的明细表,索引表用于指示服务器对应的第一对象标识与第二对象标识的映射关系,明细表用于指示第二对象标识与明细信息的映射关系;根据待查询第一对象标识,从目标服务器中存储的索引表中获取待查询第一对象标识对应的目标第二对象标识;根据目标第二对象标识,从目标服务器中存储的明细表中获取目标第二对象标识对应的第一目标明细信息。该数据库操作方法中,一方面,多个服务器中分别存储对应的第一对象标识相关的数据,可以减少单个服务器的压力,避免查询时出现瓶颈,能够实现高并发查询,另一方面,在每个服务器内部,采用索引表及明细表存储数据的方式,可以实现快速查询,提高了查询效率。因此,本实施例提供的数据库操作方法可以实现高并发的快速查询。
图7为本发明另一个实施例提供的数据库操作方法的流程示意图。本实施例适用于对数据库进行数据写入的场景中。本实施例在图2所示实施例及各种可选的实现方案的基础上,对如何向目标服务器写入数据的过程作一详细描述。如图7所示,本实施例提供的数据库操作方法中写入数据的过程如下所示:
步骤701:接收路由设备发送的写入语句。
其中,写入语句包括待写入第一对象标识、根据待写入第一对象标识生成的待写入第二对象标识、待写入第二对象的相关时间以及待写入第二对象标识对应的明细信息。目标服务器为路由设备根据第一对象标识与服务器之间的对应关系,确定的待写入第一对象标识对应的服务器。
具体地,本实施例中的写入语句可以是用户设备发送的写入语句或者运营、维护人员设备发送的写入语句。
可选地,第一对象标识与服务器之间的对应关系可以为:第一对象标识的最后n个比特位与服务器对应。基于该实现方式,路由设备可以根据待写入第一对象标识的最后n个比特位,确定待写入第一对象标识对应的目标服务器。路由设备在确定出待写入第一对象标识对应的目标服务器之后,向目标服务器发送写入语句。
本实施例中的待写入第二对象标识可以是根据待写入第一对象标识生成的。
可选地,服务器的数量为2
这里的预设算法可以为雪花算法或者其他分布式算法。唯一串的位数可以为预设位数。示例性地,唯一串的位数可以为60位。在生成唯一串的过程中,考虑到了不同的第二对象的类型,并加入了防重时间戳,以保证生成的唯一串不会重复。在生成唯一串之后,在唯一串的尾部添加待写入第一对象标识的最后n位数据,形成待写入第二对象标识。
基于第一对象标识生成第二对象标识的方式,可以保证利用第一对象标识或者第二对象标识均能实现数据查询,即支持两个维度的查询,查询的灵活性较高。
步骤702:根据待写入第一对象标识以及待写入第二对象的相关时间,确定目标服务器中存储的索引表中待写入第一对象标识对应的子索引表。
步骤702与步骤202的具体实现过程类似,此处不再赘述。
步骤703:向待写入第一对象标识对应的子索引表中写入待写入第一对象标识、待写入第二对象标识以及待写入第二对象的相关时间。
步骤704:向目标服务器中存储的明细表中写入待写入第二对象标识以及待写入第二对象标识对应的明细信息。
在执行步骤702之后,执行步骤703与步骤704。步骤703与步骤704之间没有时序关系,可以以任意的顺序执行或者并行执行。
图8为本发明提供的数据库操作方法中写入数据的示意图。如图8所示,在子索引表8.1中写入待写入第一对象标识、待写入第二对象标识以及待写入第二对象的相关时间。在明细表中写入待写入第二对象标识以及待写入第二对象标识对应的明细信息。
需要说明的是,在写入数据之前、之后或者同时,均可以执行如步骤201至步骤203所示的数据查询的步骤,为了简便,本实施例中没有描述查询数据的过程。
图9为图7所示实施例提供的数据库操作方法的信息交互示意图。以下从路由设备与目标服务器交互的角度,描述本实施例提供的数据库操作方法。如图9所示,高数据库操作方法还包括如下步骤:
步骤901:路由设备生成写入语句。
具体地,路由设备根据接收到的待写入第一对象标识,生成对应的待写入第二对象标识,并将接收到的待写入第一对象标识、待写入第二对象的相关时间、待写入第二对象标识对应的明细信息以及生成的待写入第二对象标识打包成写入语句。
步骤902:路由设备根据第一对象标识与服务器之间的对应关系,确定多个服务器中待写入第一对象标识对应的目标服务器。
步骤903:路由设备向目标服务器发送写入语句。
步骤904:目标服务器接收路由设备发送的写入语句。
步骤905:目标服务器根据待写入第一对象标识以及待写入第二对象的相关时间,确定目标服务器中存储的索引表中待写入第一对象标识对应的子索引表。
步骤906:目标服务器向待写入第一对象标识对应的子索引表中写入待写入第一对象标识、待写入第二对象标识以及待写入第二对象的相关时间。
步骤907:目标服务器向目标服务器中存储的明细表中写入待写入第二对象标识以及待写入第二对象标识对应的明细信息。
本实施例提供的数据库操作方法,还包括:接收路由设备发送的写入语句,其中,写入语句包括待写入第一对象标识、根据待写入第一对象标识生成的待写入第二对象标识、待写入第二对象的相关时间以及待写入第二对象标识对应的明细信息,目标服务器为路由设备根据第一对象标识与服务器之间的对应关系,确定的待写入第一对象标识对应的服务器;根据待写入第一对象标识以及待写入第二对象的相关时间,确定目标服务器中存储的索引表中待写入第一对象标识对应的子索引表;向待写入第一对象标识对应的子索引表中写入待写入第一对象标识、待写入第二对象标识以及待写入第二对象的相关时间;向目标服务器中存储的明细表中写入待写入第二对象标识以及待写入第二对象标识对应的明细信息。该数据库操作方法中,基于上述写入过程,一方面可以实现在多个服务器中存储数据,可以减少单个服务器的压力,避免写入及查询时出现瓶颈,能够实现高并发写入及查询,另一方面,在每个服务器内部,采用索引表及明细表存储数据的方式,后续可以实现快速查询,提高了查询效率。
图10为本发明又一个实施例提供的数据库操作方法的流程示意图。本实施例适用于对数据库进行数据修改的场景中。本实施例在图2及图7所示实施例及各种可选的实现方案的基础上,对如何修改目标服务器中的数据的过程作一详细描述。如图10所示,本实施例提供的数据库操作方法中修改数据的过程如下所示:
步骤1001:接收路由设备发送的修改语句。
其中,修改语句包括待修改第一对象标识、待修改第一对象标识对应的待修改第二对象的相关时间以及待修改第一对象标识对应的修改信息。目标服务器为路由设备根据第一对象标识与服务器之间的对应关系,确定的待修改第一对象标识对应的服务器。
具体地,本实施例中的修改语句可以是用户设备发送的修改语句或者运营、维护人员设备发送的修改语句。
可选地,第一对象标识与服务器之间的对应关系可以为:第一对象标识的最后n个比特位与服务器对应。基于该实现方式,路由设备可以根据待修改第一对象标识的最后n个比特位,确定待修改第一对象标识对应的目标服务器。路由设备在确定出待修改第一对象标识对应的目标服务器之后,向目标服务器发送修改语句。
步骤1002:根据待修改第一对象标识以及待修改第二对象的相关时间,确定目标服务器中存储的索引表中待修改第一对象标识对应的子索引表。
步骤1002与步骤202的具体实现过程类似,此处不再赘述。
步骤1003:从待修改第一对象标识对应的子索引表中获取待修改第一对象标识对应的待修改第二对象标识。
步骤1004:根据待修改第二对象标识,从目标服务器中存储的明细表中获取待修改第二对象标识对应的明细信息。
步骤1005:根据待修改第一对象标识对应的修改信息,对待修改第二对象标识对应的明细信息进行修改。
在步骤1005中,对待修改第二对象标识对应的明细信息进行修改可以包括以下两种实现方式:一种为用待修改第一对象标识对应的修改信息替换待修改第二对象标识对应的明细信息中需要替换的信息;另一种为在待修改第二对象标识对应的明细信息中增加待修改第一对象标识对应的修改信息。
图11为本发明提供的数据库操作方法中修改数据的示意图。如图11所示,假设第二对象为优惠券,明细信息为优惠券的状态,待修改第一对象标识对应的修改信息为优惠券的状态由未使用变化为已使用,则将明细表中的待修改第二对象标识对应的优惠券的状态中的“未使用”修改为“已使用”。
需要说明的是,在修改数据之前、之后或者同时,均可以执行如步骤201至步骤203所示的数据查询的步骤和/或者执行如步骤701至步骤704的数据写入的步骤,为了简便,本实施例中没有描述查询数据以及写入数据的过程。
图12为图10所示实施例提供的数据库操作方法的信息交互示意图。以下从路由设备与目标服务器交互的角度,描述本实施例提供的数据库操作方法。如图12所示,高数据库操作方法还包括如下步骤:
步骤1201:路由设备获取修改语句。
步骤1202:路由设备根据第一对象标识与服务器之间的对应关系,确定多个服务器中待修改第一对象标识对应的目标服务器。
步骤1203:路由设备向目标服务器发送修改语句。
步骤1204:目标服务器接收路由设备发送的修改语句。
步骤1205:目标服务器根据待修改第一对象标识以及待修改第二对象的相关时间,确定目标服务器中存储的索引表中待修改第一对象标识对应的子索引表。
步骤1206:目标服务器从待修改第一对象标识对应的子索引表中获取待修改第一对象标识对应的待修改第二对象标识。
步骤1207:目标服务器根据待修改第二对象标识,从目标服务器中存储的明细表中获取待修改第二对象标识对应的明细信息。
步骤1208:目标服务器根据待修改第一对象标识对应的修改信息,对待修改第二对象标识对应的明细信息进行修改。
本实施例提供的数据库操作方法,还包括:接收路由设备发送的写入语句,其中,写入语句包括待写入第一对象标识、根据待写入第一对象标识生成的待写入第二对象标识、待写入第二对象的相关时间以及待写入第二对象标识对应的明细信息,目标服务器为路由设备根据第一对象标识与服务器之间的对应关系,确定的待写入第一对象标识对应的服务器;根据待写入第一对象标识以及待写入第二对象的相关时间,确定目标服务器中存储的索引表中待写入第一对象标识对应的子索引表;向待写入第一对象标识对应的子索引表中写入待写入第一对象标识、待写入第二对象标识以及待写入第二对象的相关时间;向目标服务器中存储的明细表中写入待写入第二对象标识以及待写入第二对象标识对应的明细信息。该数据库操作方法中,一方面,多个服务器中分别存储对应的第一对象标识相关的数据,可以减少单个服务器的压力,避免修改时出现瓶颈,能够实现高并发修改,另一方面,在每个服务器内部,采用索引表及明细表存储数据的方式,可以实现快速修改,提高了修改效率。
图13为本发明再一个实施例提供的数据库操作方法的流程示意图。本实施例适用于利用第二对象标识对数据库进行查询的场景中。本实施例在图2、图7、图10所示实施例及各种可选的实现方案的基础上,对利用第二对象标识查询目标服务器中的数据的过程作一详细描述。如图13所示,本实施例提供的数据库操作方法中查询数据的过程如下所示:
步骤1301:接收路由设备发送的第二查询语句。
其中,第二查询语句包括待查询第二对象标识,待查询第二对象标识是根据对应的第一对象标识生成的。目标服务器为路由设备根据第一对象标识与服务器之间的对应关系,确定的待查询第二对象标识对应的服务器。
具体地,由于待查询第二对象标识是根据对应的第一对象标识生成的,也即,第一对象标识与第二对象标识具有对应关系,并且,第一对象标识与服务器具有对应关系,则可以确定出第二对象标识与服务器也具有对应关系。换句话说,路由设备可以根据第一对象标识与服务器之间的对应关系,确定出待查询第二对象标识对应的服务器。
可选地,服务器的数量为2
这里的预设算法可以为雪花算法或者其他分布式算法。唯一串的位数可以为预设位数。示例性地,唯一串的位数可以为60位。在生成唯一串的过程中,考虑到了不同的第二对象的类型,并加入了防重时间戳,以保证生成的唯一串不会重复。在生成唯一串之后,在唯一串的尾部添加对应的第一对象标识的最后n位数据,形成第二对象标识。
基于第一对象标识生成第二对象标识的方式,可以保证在不进行冗余存储数据的前提下,利用第一对象标识或者第二对象标识均能实现数据查询,即支持两个维度的查询,查询的灵活性较高,并且,资源利用友好。
本实施例与图2所示实施例及各种可选的实现方式的区别在于,本实施例中是根据第二对象的标识实现查询。
步骤1302:根据待查询第二对象标识,从目标服务器中存储的明细表中获取待查询第二对象标识对应的第二目标明细信息。
在步骤1302中,根据待查询第二对象标识,从目标服务器中存储的明细表中获取待查询第二对象标识对应的第二目标明细信息。
可选地,在步骤1302之后,目标服务器可以向路由设备反馈第二目标明细信息。
需要说明的是,在利用第二对象标识查询数据之前、之后或者同时,均可以执行如步骤201至步骤203所示的数据查询的步骤、执行如步骤701至步骤704的数据写入的步骤、执行步骤1001至步骤1005的数据修改的步骤中的至少一项,为了简便,本实施例中没有其他数据操作的过程。
图14为图13所示实施例提供的数据库操作方法的信息交互示意图。以下从路由设备与目标服务器交互的角度,描述本实施例提供的数据库操作方法。如图14所示,高数据库操作方法还包括如下步骤:
步骤1401:路由设备获取第二查询语句。
步骤1402:路由设备根据第一对象标识与服务器之间的对应关系,确定多个服务器中待查询第二对象标识对应的目标服务器。
步骤1403:路由设备向目标服务器发送第二查询语句。
步骤1404:目标服务器接收路由设备发送的第二查询语句。
步骤1405:目标服务器根据待查询第二对象标识,从目标服务器中存储的明细表中获取待查询第二对象标识对应的第二目标明细信息。
本实施例提供的数据库操作方法,还包括:接收路由设备发送的第二查询语句,其中,第二查询语句包括待查询第二对象标识,待查询第二对象标识是根据对应的第一对象标识生成的,目标服务器为路由设备根据第一对象标识与服务器之间的对应关系,确定的待查询第二对象标识对应的服务器;根据待查询第二对象标识,从目标服务器中存储的明细表中获取待查询第二对象标识对应的第二目标明细信息。该数据库操作方法,一方面,可以实现在没有冗余存储数据的前提下,实现多维度的查询,查询的灵活度较高,另一方面,多个服务器中分别存储对应的第一对象标识相关的数据,可以减少单个服务器的压力,避免查询时出现瓶颈,能够实现高并发查询。
本发明实施例还提供一种数据库操作系统,包括:路由设备以及与路由设备连接的多个服务器。
路由设备获取第一查询语句,其中,第一查询语句包括待查询第一对象标识。
路由设备根据第一对象标识与服务器之间的对应关系,确定多个服务器中待查询第一对象标识对应的目标服务器。其中,每个服务器中存储有索引表以及与索引表对应的明细表,索引表用于指示服务器对应的第一对象标识与第二对象标识的映射关系,明细表用于指示第二对象标识与明细信息的映射关系。
路由设备向目标服务器发送第一查询语句。
目标服务器用于执行本发明任意实施例所提供的数据库操作方法。
本实施例提供的数据库操作系统具备执行方法相应的功能模块和有益效果。
图15为本发明一个实施例提供的数据库操作装置的结构示意图。该数据库操作装置可以设置于目标服务器中。如图15所示,本实施例提供的数据库操作装置包括如下模块:接收模块151、第一获取模块152以及第二获取模块153。
接收模块151,用于接收路由设备发送的第一查询语句。
其中,第一查询语句包括待查询第一对象标识。路由设备连接包括目标服务器在内的多个服务器。目标服务器为路由设备根据第一对象标识与服务器之间的对应关系,确定的待查询第一对象标识对应的服务器。每个服务器中存储有索引表以及与索引表对应的明细表,索引表用于指示服务器对应的第一对象标识与第二对象标识的映射关系,明细表用于指示第二对象标识与明细信息的映射关系。
第一获取模块152,用于根据待查询第一对象标识,从目标服务器中存储的索引表中获取待查询第一对象标识对应的目标第二对象标识。
第二获取模块153,用于根据目标第二对象标识,从目标服务器中存储的明细表中获取目标第二对象标识对应的第一目标明细信息。
可选地,第一查询语句还包括:待查询第一对象标识对应的目标第二对象的相关时间。服务器的索引表包括多个子索引表,每个子索引表用于指示服务器对应的第一对象标识、第二对象标识以及第二对象的相关时间的映射关系。不同的子索引表中第二对象的相关时间形成的时间范围不同。第一获取模块152具体用于:根据待查询第一对象标识以及目标第二对象的相关时间,确定目标服务器中存储的索引表中待查询第一对象标识对应的子索引表;从待查询第一对象标识对应的子索引表中获取待查询第一对象标识对应的目标第二对象标识。
可选地,该装置还包括:确定模块及写入模块。
接收模块151,还用于接收路由设备发送的写入语句。
其中,写入语句包括待写入第一对象标识、根据待写入第一对象标识生成的待写入第二对象标识、待写入第二对象的相关时间以及待写入第二对象标识对应的明细信息。目标服务器为路由设备根据第一对象标识与服务器之间的对应关系,确定的待写入第一对象标识对应的服务器。
确定模块,用于根据待写入第一对象标识以及待写入第二对象的相关时间,确定目标服务器中存储的索引表中待写入第一对象标识对应的子索引表。
写入模块,用于向待写入第一对象标识对应的子索引表中写入待写入第一对象标识、待写入第二对象标识以及待写入第二对象的相关时间。
写入模块,还用于向目标服务器中存储的明细表中写入待写入第二对象标识以及待写入第二对象标识对应的明细信息。
可选地,服务器的数量为2
一种实现方式中,该装置还包括:修改模块。
接收模块151,还用于接收路由设备发送的修改语句。
其中,修改语句包括待修改第一对象标识、待修改第一对象标识对应的待修改第二对象的相关时间以及待修改第一对象标识对应的修改信息。目标服务器为路由设备根据第一对象标识与服务器之间的对应关系,确定的待修改第一对象标识对应的服务器。
确定模块,还用于根据待修改第一对象标识以及待修改第二对象的相关时间,确定目标服务器中存储的索引表中待修改第一对象标识对应的子索引表。
第一获取模块152,还用于从待修改第一对象标识对应的子索引表中获取待修改第一对象标识对应的待修改第二对象标识。
第二获取模块153,还用于根据待修改第二对象标识,从目标服务器中存储的明细表中获取待修改第二对象标识对应的明细信息。
修改模块,用于根据待修改第一对象标识对应的修改信息,对待修改第二对象标识对应的明细信息进行修改。
另一种实现方式中,接收模块151,还用于接收路由设备发送的第二查询语句。其中,第二查询语句包括待查询第二对象标识。待查询第二对象标识是根据对应的第一对象标识生成的。目标服务器为路由设备根据第一对象标识与服务器之间的对应关系,确定的待查询第二对象标识对应的服务器。
第二获取模块153,还用于根据待查询第二对象标识,从目标服务器中存储的明细表中获取待查询第二对象标识对应的第二目标明细信息。
可选地,该装置还包括删除模块。
第一获取模块152还用于以预设的频率获取目标服务器中存储的每个子索引表中第二对象的相关时间。
删除模块,用于删除目标服务器中存储的子索引表以及明细表中对应的第二对象的相关时间满足预设条件的整条数据。
可选地,第一对象标识为用户标识,第二对象标识为营销信息标识。
示例性地,营销信息为优惠券。第二对象的相关时间包括以下至少一项:优惠券的领取时间、优惠券的激活时间、优惠券的使用时间以及优惠券的到期日期。
可选地,明细信息包括以下至少一项:优惠券的相关时间、优惠券的类型、优惠券的面额、优惠券的使用条件、优惠券对应的退券规则以及优惠券的状态。
本发明实施例所提供的数据库操作装置可执行本发明任意实施例所提供的数据库操作方法,具备执行方法相应的功能模块和有益效果。
图16为本发明一个实施例提供的服务器的结构示意图。如图16所示,该服务器包括处理器60和存储器61。该服务器中处理器60的数量可以是一个或多个,图16中以一个处理器60为例;该服务器的处理器60和存储器61可以通过总线或其他方式连接,图16中以通过总线连接为例。
存储器61作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的数据库操作方法对应的程序指令以及模块(例如,数据库操作装置中的接收模块151、第一获取模块152以及第二获取模块153)。处理器60通过运行存储在存储器61中的软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据库操作方法,即实现上述的数据库操作方法。
存储器61可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据服务器的使用所创建的数据等。此外,存储器61可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器61可进一步包括相对于处理器60远程设置的存储器,这些远程存储器可以通过网络连接至服务器。上述网络的实施例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
本发明还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种数据库操作方法,该方法包括:
接收路由设备发送的第一查询语句;其中,所述第一查询语句包括待查询第一对象标识,所述路由设备连接包括所述目标服务器在内的多个服务器,所述目标服务器为所述路由设备根据第一对象标识与服务器之间的对应关系,确定的所述待查询第一对象标识对应的服务器;每个所述服务器中存储有索引表以及与所述索引表对应的明细表,所述索引表用于指示所述服务器对应的第一对象标识与第二对象标识的映射关系,所述明细表用于指示第二对象标识与明细信息的映射关系;
根据所述待查询第一对象标识,从所述目标服务器中存储的索引表中获取所述待查询第一对象标识对应的目标第二对象标识;
根据所述目标第二对象标识,从所述目标服务器中存储的明细表中获取所述目标第二对象标识对应的第一目标明细信息。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的数据库操作方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台服务器(可以是个人计算机,计算机设备,或者网络设备等)执行本发明各个实施例所述的数据库操作方法。
值得注意的是,上述数据库操作装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
- 数据库操作方法、系统、装置、服务器及存储介质
- 一种数据库操作方法、系统及代理服务器和存储介质