1.本技术涉及电数字数据处理领域,特别是涉及一种数据查询方法、装置及电子设备。
背景技术:2.随着5g时代的到来,如何快速对数据库中的数据进行实时查询成为了亟待解决的问题,其中,数据库是指按照数据结构来组织、存储和管理数据的仓库,用户可以对数据库中的数据进行新增、截取、更新、删除等操作,并且这些操作过程都会生成相应的日志信息存储在数据库中,当数据库遭到意外的损坏时,可以通过查询日志来找出数据库损坏原因。
3.但是,随着数据库中的日志存储量的增大,日志查询的效率也会逐步降低。因此,现有的日志查询方法,先从数据库中请求得到目标日志,并将目标日志保存至缓存服务器中,若再有同样的请求时,直接把缓存服务器中的目标日志返回给用户,避免对数据库进行查询,进而降低日志查询量,减少日志查询的时间,提高查询效率。
4.但是,面对服务器故障、主机宕机或者网络故障等场景时,上述日志查询方法所依赖的缓存服务器不可用,因此,无法通过缓存服务器来实现对目标日志的查询。
技术实现要素:5.本技术提供了一种数据查询方法、装置及电子设备,可以实现主数据库的读写分离,提高了数据查询的效率。此外,在面对服务器故障、主机宕机或者网络故障等场景时,实现数据查询。
6.第一方面,本技术提供了一种数据查询方法,所述方法包括:
7.接收目标日志对应的查询指令,其中,所述目标日志存储在主数据库中;
8.根据从数据库中预设信息对应的索引,在所述从数据库中对所述目标日志对应的目标数据进行查询,其中,所述预设信息根据主数据库中目标日志得到;
9.将查询得到的目标数据作为所述查询指令对应的数据查询结果。
10.通过上述方法,将主数据库中的数据同步至从数据库中,并在从数据库中进行数据查询,可以实现主数据库的读写分离,进而降低了主数据库的读写压力,提高了数据查询的效率。同时,通过对预设信息创建索引,并根据索引查询目标数据,可以进一步提高数据查询的速度。
11.此外,在面对服务器故障、主机宕机或者网络故障等场景时,上述方法所依赖的从数据库依然可用,从而实现数据查询。
12.在一种可能的设计中,在所述接收目标日志对应的查询指令之前,还包括:
13.在所述主数据库中获取各个目标日志对应的预设信息,其中,所述预设信息至少包括增量日志;
14.将各个预设信息同步至所述从数据库。
15.通过上述方法,可以将主数据库中的数据同步至从数据库中,以使后续在从数据
库中进行数据查询,进而实现主数据库的读写分离。
16.在一种可能的设计中,在所述接收目标日志对应的查询指令之前,还包括:
17.将从数据库中各个目标日志对应的预设信息,发送给消息队列中间件;
18.对所述消息队列中间件中的各个预设信息创建索引。
19.通过上述方法,利用消息列队中间件的削峰和解耦功能,可以提高预设信息传输的并发量,同时,通过对预设信息创建索引,并根据索引查询目标数据,可以提高数据查询的速度。
20.在一种可能的设计中,所述对所述消息队列中间件中的各个预设信息创建索引包括:
21.将各个预设信息按照指定的列进行排序存储;
22.对排序后的各个预设信息对应的列增加前缀索引,并将所述前缀索引作为所述各个预设信息对应的索引。
23.通过上述方法,对预设信息创建索引,进而可以提高数据查询的速度。
24.第二方面,本技术提供了一种数据查询装置,所述装置包括:
25.接收模块,用于接收目标日志对应的查询指令,其中,所述目标日志存储在主数据库中;
26.查询模块,用于根据从数据库中预设信息对应的索引,在所述从数据库中对所述查询指令对应的目标数据进行查询,其中,所述预设信息根据主数据库中目标日志得到;
27.确定模块,用于将查询得到的目标数据作为所述查询指令对应的数据查询结果。
28.在一种可能的设计中,所述装置还包括:
29.获取模块,用于在所述主数据库中获取各个目标日志对应的预设信息,其中,所述预设信息至少包括增量日志;
30.同步模块,用于将各个预设信息同步至所述从数据库。
31.在一种可能的设计中,所述装置还包括:
32.发送模块,用于将从数据库中各个目标日志对应的预设信息,发送给消息队列中间件;
33.创建模块,用于对所述消息队列中间件中的各个预设信息创建索引。
34.在一种可能的设计中,所述创建模块具体用于:
35.将各个预设信息按照指定的列进行排序存储;
36.对排序后的各个预设信息对应的列增加前缀索引,并将所述前缀索引作为所述各个预设信息对应的索引。
37.第三方面,本技术提供了一种电子设备,包括:
38.存储器,用于存放计算机程序;
39.处理器,用于执行所述存储器上所存放的计算机程序时,实现权利要求1-4中任一项所述的方法步骤。
40.第四方面,本技术提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述的数据查询方法步骤。
41.通过上述方法,将主数据库中的数据同步至从数据库中,并在从数据库中进行数据查询,可以实现主数据库的读写分离,进而降低了主数据库的读写压力,提高了数据查询
的效率。同时,通过对预设信息创建索引,并根据索引查询目标数据,可以进一步提高数据查询的速度。
42.此外,在面对服务器故障、主机宕机或者网络故障等场景时,上述方法所依赖的从数据库依然可用,从而实现数据查询。
43.上述第二方面至第四方面中的各个方面以及各个方面可能达到的技术效果参照上述针对第一方面或者第一方面中的各种可能方案可以达到的技术效果说明,这里不再重复赘述。
附图说明
44.图1为本技术提供的一种数据查询方法的流程图;
45.图2为本技术提供的一种数据查询装置的结构示意图;
46.图3为本技术提供的一种电子设备的结构示意图。
具体实施方式
47.为了使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术作进一步地详细描述。方法实施例中的具体操作方法也可以应用于装置实施例或系统实施例中。需要说明的是,在本技术的描述中“多个”理解为“至少两个”。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,并存在a和b,单独存在b这三种情况。a与b连接,可以表示:a与b直接连接和a与b通过c连接这两种情况。另外,在本技术的描述中,“第一”、“第二”等词汇,仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。
48.下面结合附图,对本技术实施例进行详细描述。
49.随着5g时代的到来,如何快速对数据库中的数据进行实时查询成为了亟待解决的问题,其中,数据库是指按照数据结构来组织、存储和管理数据的仓库,用户可以对数据库中的数据进行新增、截取、更新、删除等操作,并且这些操作过程都会生成相应的日志信息存储在数据库中,当数据库遭到意外的损坏时,可以通过查询日志来找出数据库损坏原因。
50.但是,随着数据库中的日志存储量的增大,日志查询的效率也会逐步降低。因此,现有的日志查询方法,先从数据库中请求得到目标日志,并将目标日志保存至缓存服务器中,若再有同样的请求时,直接把缓存服务器中的目标日志返回给用户,避免对数据库进行查询,进而降低日志查询量,减少日志查询的时间,提高查询效率。
51.但是,面对服务器故障、主机宕机或者网络故障等场景时,上述日志查询方法所依赖的缓存服务器不可用,因此,无法通过缓存服务器来实现对目标日志的查询。
52.为了解决上述问题,本技术实施例提供的一种数据查询方法,通过将主数据库中的数据同步至从数据库中,并在从数据库中进行数据查询,可以实现主数据库的读写分离,进而降低了主数据库的读写压力,提高了数据查询的效率。同时,通过对预设信息创建索引,并根据索引查询目标数据,可以进一步提高数据查询的速度。
53.此外,在面对服务器故障、主机宕机或者网络故障等场景时,上述方法所依赖的从数据库依然可用,从而实现数据查询。
54.其中,本技术实施例所述方法和装置基于同一技术构思,由于方法及装置所解决
问题的原理相似,因此装置与方法的实施例可以相互参见,重复之处不再赘述。
55.为了使本技术的目的、技术方案和优点更加清楚,下面结合附图对本技术作进一步的详细描述。
56.如图1所示,为本技术提供的一种数据查询方法的流程图,具体包括如下步骤:
57.s11,接收到目标日志对应的查询指令;
58.s12,根据从数据库中预设信息对应的索引,在从数据库中对目标日志对应的目标数据进行查询;
59.s13,将查询得到的目标数据作为查询指令对应的数据查询结果。在本技术实施例中,主数据库中常用的日志一般有重做日志(redo log)、回滚日志(undo log)、二进制日志(binlog)、错误日志(errorlog)、慢查询日志(slow query log)、一般查询日志(general log)以及中继日志(relay log),通过在主数据库中查询目标日志,可以找出目标日志所记录的相关问题。但是,在主数据库中的数据存储量较大的情况下,查询目标日志的效率将会受到严重影响。
60.为了解决日志查询效率问题,本技术实施例考虑建立一个从数据库,并将主数据库中的预设信息同步至从数据库中,其中,预设信息可以根据binlog来得到,比如增量日志,因为binlog中记录的是用户对数据库中数据的每一次操作,例如增加、修改操作,同时记录了每一个操作执行的时间、类型以及执行的耗时,进一步,在从数据库中查询得到目标日志对应的预设信息后,同样可以找出主数据库中目标日志所对应的相关问题。
61.在上述过程中,在预设信息为增量日志时,根据binlog的主从复制过程,可以直接将增量日志同步至从数据库中。
62.具体的,binlog的主从复制有三种模式,分别是基于结构化查询语言(structured query language,sql)语句的复制(statement-based replication,sbr),基于行的复制(row-based replication,rbr)以及混合模式复制(mixed-based replication,mbr),其中,sbr模式的作用是,每一条会修改数据的sql语句会记录到binlog中,且不需要记录每一条sql语句与每行的数据变化,从而减少了binlog日志量,减少了磁盘的输入和输出,提高了磁盘的性能;rbr模式的作用是,不记录每一条sql语句的上下文信息,仅记录哪条数据被修改了,修改后的结果是什么,但这种模式可能会产生大量的日志,增加了日志的内存使用占比;mbr模式的作用是,mbr模式是上述两种模式的混合使用,一般的复制使用sbr模式保存binlog,对于sbr模式无法复制的相关操作,则使用rbr模式保存binlog,mysql会根据执行的sql语句选择日志保存方式。
63.在一种可能的场景中,在预设信息为全量日志时,直接新建一个从数据库,然后将全量日志同步至新建好的从数据库中即可。
64.在通过上述方法,可以将主数据库中的预设信息同步至从数据库,进一步将从数据库作为数据查询的主体,接收数据查询指令,从而可以避免主数据库既要承担数据写入任务,还要承担数据查询任务,实现主数据库的读写分离。
65.在本技术实施例中,为了进一步提高数据查询的速度,可以通过对预设信息创建索引。
66.具体的,首先从数据库将各个预设信息发送给消息队列(messagequeue,mq)中间件,常见的消息队列中间件有面向消息的中间件(rabbitmq)、开放源代码消息中间件
(activemq)以及队列模型的消息中间件(rocketmq)等。在本技术实施例中,可以选择rabbitmq或者rocketmq作为存储预设信息的消息队列中间件。
67.进一步,消息队列中间件会将各个预设信息发送给数据存储器(starrocks),其中,starrocks是一种面向多种数据分析场景的、兼容mysql协议的以及高性能分布式关系型的分析数据库。在预设信息传输过程中,使用消息队列中间件来发送预设信息,是因为消息队列中间件具有削峰和解耦功能。其中,削峰功能是指,减少从数据库因发送的预设信息过多以及starrocks因接收的预设信息过多而产生的压力。
68.举例来讲,当从数据库给starrocks发送预设信息时,若预设信息过多,就会导致从数据库以及starrocks都产生极大的压力,因此,如果从数据库先将预设信息发送给消息队列中间件,并在发送完成后,自动结束发送过程,然后,starrocks在从消息队列中间件接收预设信息时,若此时消息列队中间件正在接收预设信息,则先不处理starrocks接收预设信息的请求,直到消息队列中间件准备好后,才开始给starrocks发送预设信息。
69.解耦功能是指,增强从数据库和starrocks的独立存在能力,举例来讲,当从数据库给starrocks发送预设信息时,如果starrocks出现故障,导致不能正常接收预设信息,进而导致从数据库预设信息发送失败,从数据库和starrocks耦合,因此,如果从数据库先将预设信息发送给消息队列中间件,然后starrocks在从消息队列中间件接收预设信息,那么,就算starrocks出现故障,也不会影响从数据库发送预设信息。
70.starrocks在通过上述方法接收到各个预设消息后,结合自身的内置结构,对各个预设信息创建索引。
71.具体的,starrocks为了加速查询,首先会将接收到的各个预设信息按照指定的列进行排序和存储,这部分用于排序的列,就称为排序键(sort key),其中,排序的列可以是一列,也可以是多列,具体的列数视情况而定,此处不作具体的限定。若以排序的列作为条件来进行数据查询,就可以提高查询的速度。其中,排序键中包含的列必须是从第一列开始,列的顺序也必须是连续的,并且排序键中不需要包含过多的列,如果选择了大量的列用于排序,那么可能会导致starrocks的内存不足。
72.进一步,若想再次提高数据查询的速度,可以通过前缀索引(shortkey index)来实现,即在排序键中的列前面增加索引,其中,前缀索引需满足如下条件:
73.前缀索引包含的列只能是排序键中的列;一个前缀索引包含的列数不能超过3列;前缀索引的字节数不超过36字节;前缀索引不能包含单精度浮点(float)类型或者双精度浮点(double)类型的列;前缀索引中可变长字符串(varchar)类型列只能出现一次,并且是末尾位置,即使在字节数没有达到36个字节时,如果遇到varchar类型的列,也会直接停止给后面的列增加前缀索引。
74.值得注意的是,前缀索引不需要单独手动创建或指定,starrocks在创建排序键时其实已经默认完成了指定,它是starrocks自带的一种加速方式。
75.在通过上述方法得到前缀索引,即各个预设信息对应的索引后,实时节点会将索引存储至第一存储单元中,得到第一索引,进一步,将第一索引保存至磁盘,比如,按照时间间隔的间歇性进行持久化至磁盘,得到第一索引构成的数据块,其中,持久化的目的是当面对服务器故障、主机宕机或者网络故障等场景时,索引依然可以使用,最后,历史节点会将数据块封装至第三存储单元中,即从数据库中,其中,封装的目的是进一步保护索引不被破
坏。
76.具体的,实时节点的功能是对导入的前缀索引进行保存,经由这些节点导入的前缀索引可以立刻被查询,但是,实时节点只会保存指定时间内的前缀索引,并定期把指定时间内收集的这些不可变的前缀索引导入到druid集群里面另外一个专门负责处理不可变数据的节点中去;实时节点还会将所有传入的前缀索引进行缓存,为了避免出现前缀索引堆溢的问题,实时节点会定期地把缓存中的前缀索引持久化到磁盘中去。历史节点的功能是加载和处理这些不可变前缀索引构成的数据块(segment),并将数据块进行封装。
77.在接收到数据查询指令后,根据创建的索引,可以在从数据库中获取数据查询指令对应的目标数据。
78.由于从数据库中存储的是主数据库中的目标日志对应的预设信息,并且预设信息中记录了用户对数据库中数据的每一次操作,例如增加、修改操作,同时记录了每一个操作执行的时间、类型以及执行的耗时,在从数据库中查询得到目标日志对应的预设信息后,可以找出主数据库中目标日志所对应的相关问题。因此,将查询得到的目标数据作为查询指令对应的数据查询结果。
79.通过上述方法,将主数据库中的预设信息同步至从数据库中,并在从数据库中进行数据查询,可以实现主数据库的读写分离,进而降低了主数据库的读写压力,提高了数据查询的效率。同时,通过对预设信息创建索引,并根据索引查询目标数据,可以进一步提高数据查询的速度。
80.此外,在面对服务器故障、主机宕机或者网络故障等场景时,上述方法所依赖的从数据库依然可用,从而实现数据查询。
81.具体的,本技术相比现有技术中的采用缓存服务器查询加速的方式,在保证数据库中数据完备、请求查询数据方式不变以及内存消耗甚微的基础上,实现了实时查询数据。
82.在功能方面,本技术在原有的日志记录基础上实施增量日志存储和读取的改造方案,在满足原有功能基础上,满足实时查询的需求。
83.在数据方面,当面对服务器故障、主机宕机或者网络故障等场景时,利用增量日志做兜底工具,可以保证客户的连接始终有效,数据库中存储的数据不丢失,并且云端客户保持无感知状态,且当机器正常运作后,能够继续提供日志存储记录的服务,从而完成数据安全保障。
84.在性能方面,本技术与仅采用缓存服务器加速查询的方式做对比,在单个云端客户连接的情况下,针对value大小为1kb、10kb的数据分别做set和get操作200,000次,测试结果如表1(单位ms):
85.方案命令value 1kvalue 10k仅缓存set0.621.14本系统set0.210.37仅缓存get0.310.59本系统get0.110.21
86.表1本技术与仅采用缓存服务器加速方案性能对比
87.通过表1可以看出,无论是哪种操作,本技术提出的方案性能明显优于仅采用缓存服务器加速查询数据的方案,且速度提升了约3倍。
88.基于同一发明构思,本技术实施例中还提供了一种数据查询装置,如图2所示,为本技术中一种数据查询装置的结构示意图,所述装置包括:
89.接收模块21,用于接收目标日志对应的查询指令,其中,所述目标日志存储在主数据库中;
90.查询模块22,用于根据从数据库中预设信息对应的索引,在所述从数据库中对所述查询指令对应的目标数据进行查询,其中,所述预设信息根据主数据库中目标日志得到;
91.确定模块23,用于将查询得到的目标数据作为所述查询指令对应的数据查询结果。
92.在一种可能的设计中,所述装置还包括:
93.获取模块,用于在所述主数据库中获取各个目标日志对应的预设信息,其中,所述预设信息至少包括增量日志;
94.同步模块,用于将各个预设信息同步至所述从数据库。
95.在一种可能的设计中,所述装置还包括:
96.发送模块,用于将从数据库中各个目标日志对应的预设信息,发送给消息队列中间件;
97.创建模块,用于对所述消息队列中间件中的各个预设信息创建索引。
98.在一种可能的设计中,所述创建模块具体用于:
99.将各个预设信息按照指定的列进行排序存储;
100.对排序后的各个预设信息对应的列增加前缀索引,并将所述前缀索引作为所述各个预设信息对应的索引。
101.通过上述的一种数据查询装置,将主数据库中的数据同步至从数据库中,并在从数据库中进行数据查询,可以实现主数据库的读写分离,进而降低了主数据库的读写压力,提高了数据查询的效率。同时,通过对预设信息创建索引,并根据索引查询目标数据,可以进一步提高数据查询的速度。
102.此外,在面对服务器故障、主机宕机或者网络故障等场景时,上述方法所依赖的从数据库依然可用,从而实现数据查询。
103.基于同一发明构思,本技术实施例中还提供了一种电子设备,所述电子设备可以实现前述数据查询装置的功能,参考图3,所述电子设备包括:
104.至少一个处理器31,以及与至少一个处理器31连接的存储器32,本技术实施例中不限定处理器31与存储器32之间的具体连接介质,图3中是以处理器31和存储器32之间通过总线30连接为例。总线30在图3中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。总线30可以分为地址总线、数据总线、控制总线等,为便于表示,图3中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。或者,处理器31也可以称为控制器,对于名称不做限制。
105.在本技术实施例中,存储器32存储有可被至少一个处理器31执行的指令,至少一个处理器31通过执行存储器32存储的指令,可以执行前文论述数据查询方法。处理器31可以实现图2所示的装置中各个模块的功能。
106.其中,处理器31是该装置的控制中心,可以利用各种接口和线路连接整个该控制设备的各个部分,通过运行或执行存储在存储器32内的指令以及调用存储在存储器32内的
数据,该装置的各种功能和处理数据,从而对该装置进行整体监控。
107.在一种可能的设计中,处理器31可包括一个或多个处理单元,处理器31可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器31中。在一些实施例中,处理器31和存储器32可以在同一芯片上实现,在一些实施例中,它们也可以在独立的芯片上分别实现。
108.处理器31可以是通用处理器,例如中央处理器(cpu)、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本技术实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本技术实施例所公开的数据查询方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
109.存储器32作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器32可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(random access memory,ram)、静态随机访问存储器(static random access memory,sram)、可编程只读存储器(programmable read only memory,prom)、只读存储器(read only memory,rom)、带电可擦除可编程只读存储器(electrically erasable programmable read-only memory,eeprom)、磁性存储器、磁盘、光盘等。存储器32是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本技术实施例中的存储器32还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
110.通过对处理器31进行设计编程,可以将前述实施例中介绍的数据查询方法所对应的代码固化到芯片内,从而使芯片在运行时能够执行图1所示的实施例的数据查询方法的步骤。如何对处理器31进行设计编程为本领域技术人员所公知的技术,这里不再赘述。
111.基于同一发明构思,本技术实施例还提供一种存储介质,该存储介质存储有计算机指令,当该计算机指令在计算机上运行时,使得计算机执行前文论述数据查询方法。
112.在一些可能的实施方式中,本技术提供的数据查询方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在装置上运行时,程序代码用于使该控制设备执行本说明书上述描述的根据本技术各种示例性实施方式的数据查询方法中的步骤。
113.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
114.本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产
生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
115.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
116.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
117.显然,本领域的技术人员可以对本技术进行各种改动和变型而不脱离本技术的精神和范围。这样,倘若本技术的这些修改和变型属于本技术权利要求及其等同技术的范围之内,则本技术也意图包含这些改动和变型在内。
技术特征:1.一种数据查询方法,其特征在于,所述方法包括:接收目标日志对应的查询指令,其中,所述目标日志存储在主数据库中;根据从数据库中预设信息对应的索引,在所述从数据库中对所述目标日志对应的目标数据进行查询,其中,所述预设信息根据主数据库中目标日志得到;将查询得到的目标数据作为所述查询指令对应的数据查询结果。2.如权利要求1所述的方法,其特征在于,在所述接收目标日志对应的查询指令之前,还包括:在所述主数据库中获取各个目标日志对应的预设信息,其中,所述预设信息至少包括增量日志;将各个预设信息同步至所述从数据库。3.如权利要求1所述的方法,其特征在于,在所述接收目标日志对应的查询指令之前,还包括:将从数据库中各个目标日志对应的预设信息,发送给消息队列中间件;对所述消息队列中间件中的各个预设信息创建索引。4.如权利要求3所述的方法,其特征在于,所述对所述消息队列中间件中的各个预设信息创建索引,包括:将各个预设信息按照指定的列进行排序存储;对排序后的各个预设信息对应的列增加前缀索引,并将所述前缀索引作为各个预设信息对应的索引。5.一种数据查询装置,其特征在于,所述装置包括:接收模块,用于接收目标日志对应的查询指令,其中,所述目标日志存储在主数据库中;查询模块,用于根据从数据库中预设信息对应的索引,在所述从数据库中对所述查询指令对应的目标数据进行查询,其中,所述预设信息根据主数据库中目标日志得到;确定模块,用于将查询得到的目标数据作为所述查询指令对应的数据查询结果。6.如权利要求5所述的装置,其特征在于,所述装置还包括:获取模块,用于在所述主数据库中获取各个目标日志对应的预设信息,其中,所述预设信息至少包括增量日志;同步模块,用于将各个预设信息同步至所述从数据库。7.如权利要求5所述的装置,其特征在于,所述装置还包括:发送模块,用于将从数据库中各个目标日志对应的预设信息,发送给消息队列中间件;创建模块,用于对所述消息队列中间件中的各个预设信息创建索引。8.如权利要求7所述的装置,其特征在于,所述创建模块具体用于:将各个预设信息按照指定的列进行排序存储;对排序后的各个预设信息对应的列增加前缀索引,并将所述前缀索引作为各个预设信息对应的索引。9.一种电子设备,其特征在于,包括:存储器,用于存放计算机程序;处理器,用于执行所述存储器上所存放的计算机程序时,实现权利要求1-4中任一项所
述的方法步骤。10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-4中任一项所述的方法步骤。
技术总结本申请公开一种数据查询方法、装置及电子设备,该方法通过接收目标日志对应的查询指令,然后,根据从数据库中预设信息对应的索引,在从数据库中对目标日志对应的目标数据进行查询,并将查询得到的目标数据作为查询指令对应的数据查询结果。通过上述方法,将主数据库中的数据同步至从数据库中,并在从数据库中进行数据查询,可以实现主数据库的读写分离,进而降低了主数据库的读写压力,提高了数据查询的效率。同时,通过对预设信息创建索引,并根据索引查询目标数据,可以进一步提高数据查询的速度。此外,在面对服务器故障、主机宕机或者网络故障等场景时,上述方法所依赖的从数据库依然可用,从而实现数据查询。从而实现数据查询。从而实现数据查询。
技术研发人员:张浩
受保护的技术使用者:天翼云科技有限公司
技术研发日:2022.07.15
技术公布日:2022/11/1