CN106649584A - 一种主从式数据库系统中的索引处理方法和装置 - Google Patents
一种主从式数据库系统中的索引处理方法和装置 Download PDFInfo
- Publication number
- CN106649584A CN106649584A CN201611016891.5A CN201611016891A CN106649584A CN 106649584 A CN106649584 A CN 106649584A CN 201611016891 A CN201611016891 A CN 201611016891A CN 106649584 A CN106649584 A CN 106649584A
- Authority
- CN
- China
- Prior art keywords
- index
- database
- master
- inquiry
- slave mode
- 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.)
- Granted
Links
- 238000003672 processing method Methods 0.000 title abstract 2
- 238000000034 method Methods 0.000 claims abstract description 84
- 230000008569 process Effects 0.000 claims abstract description 40
- 230000008034 disappearance Effects 0.000 claims description 66
- 238000000151 deposition Methods 0.000 claims 1
- 238000012423 maintenance Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000003466 anti-cipated effect Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000001035 drying Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
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)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种主从式数据库系统中的索引处理方法和装置。该方法包括:对于主从式数据库系统中的一个数据库,获取该数据库的慢查询日志文件;慢查询日志文件中记录了查询用时超过预设时长的查询日志;根据该数据的慢查询日志文件中的一个查询日志,重新执行相应的查询语句,并查看重新执行相应的查询语句的过程中是否使用了索引;如果没有使用索引,查看主从式数据库系统中的其他数据库中是否存在相应的索引;如果其他数据库中存在相应的索引,则在该数据库中添加相应的索引。上述技术方案可以及时发现主从数据库系统的数据库中缺失的索引并进行添加处理,有效减少数据库中慢查询,提高查询速度。
Description
技术领域
本发明涉及计算机技术领域,具体涉及一种主从式数据库系统中的索引处理方法和装置。
背景技术
为了实现数据库系统的稳定性,主从架构(Master/Slave)的数据库系统被广泛应用。主从式数据库包含有一个主数据库和一个或者多个从数据库,实现了数据库读写功能的分离。一般来说,主数据库负责写入数据的操作,从数据库负责对主数据库的数据进行备份以及负责数据查询等操作。当数据库的数据表中有大量记录时,为了提高要数据库中的数据查询效率,可以采用在数据库中建立索引,然后在索引中找到符合查询条件的索引值,最后通过保存的索引快速找到数据库中对应的数据。但是在建立一条索引的时候,并不是在主从数据库系统中的每个数据库中都建立该索引,或者因为某些原因造成数据库中的索引缺失,那么当用户通过某一索引进行数据查询的时候,如果查询请求路由到缺失该条索引的数据库中,只能进行全数据库表的遍历搜索,将所有数据一一取出,和查询条件进行一一对比,然后返回满足条件的数据,这样会消耗大量数据库系统时间,查询速度慢,影响查询效率。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的主从式数据库系统中的索引处理方法和相应的装置。
依据本发明的一个方面,提供了一种主从式数据库系统中的索引处理方法,包括:
对于主从式数据库系统中的一个数据库,获取该数据库的慢查询日志文件;所述慢查询日志文件中记录了查询用时超过预设时长的查询日志;
根据该数据的慢查询日志文件中的一个查询日志,重新执行相应的查询语句,并查看重新执行相应的查询语句的过程中是否使用了索引;
如果没有使用索引,查看所述主从式数据库系统中的其他数据库中是否存在相应的索引;
如果其他数据库中存在相应的索引,则在该数据库中添加所述相应的索引。
可选地,该方法进一步包括:
如果其他数据库中均不存在相应的索引,在索引缺失列表中添加关于该数据库缺失所述相应索引的信息;
将所述索引缺失列表发送给使用该主从式数据库系统的业务端。
可选地,该方法进一步包括:
接收所述业务端在接收到所述索引缺失列表后反馈的索引添加列表;根据所述索引添加列表,在主从式数据库系统中的各数据库中分别添加相应的索引;
和/或,
当所述业务端在预设时间内未反馈信息时,根据索引缺失列表在主从式数据库系统中的各数据库中分别添加相应的索引。
可选地,在所述在该数据库中添加所述相应的索引之前,该方法进一步包括:
根据该数据库对应的本地资源判断是否满足在该数据库中添加所述相应的索引条件;
若是,则执行所述在该数据库中添加所述相应的索引的步骤;
若否,则将相应的查询请求路由到存在相应的索引的其他数据库。
可选地,所述根据慢查询日志文件中的一个查询日志,重新执行相应的查询语句包括:
针对该数据库,新建一个对应的备份数据库;
根据该数据库的慢查询日志文件中的一个查询日志,在该数据库的新建的备份数据库中重新执行相应的查询语句。
可选地,所述根据慢查询日志文件中的一个查询日志,重新执行相应的查询语句包括:
根据该数据库的慢查询日志文件中的一个查询日志,在所述主从式数据库系统自有的备份数据库中重新执行相应的查询语句;
所述主从式数据库系统自有的备份数据库是所述主从式数据库系统中的任一个数据库的备份数据库。
可选地,所述根据慢查询日志文件中的一个查询日志,重新执行相应的查询语句包括:
根据慢查询日志文件中的一个查询日志,直接在该数据库中重新执行相应的查询语句。
可选地,根据慢查询日志文件中的一个查询日志,直接在该数据库中重新执行相应的查询语句包括:
根据该数据库的访问量的时间分布,确定该数据库的访问量小于预设阈值的时间段;
在所确定的时间段内,根据慢查询日志文件中的一个查询日志,直接在该数据库中重新执行相应的查询语句。
根据本发明的另一方面,提供了一种主从式数据库系统中的索引处理装置,包括:
慢查询获取单元,适于对于主从式数据库系统中的一个数据库,获取该数据库的慢查询日志文件;所述慢查询日志文件中记录了查询用时超过预设时长的查询日志;
查询执行单元,适于根据该数据的慢查询日志文件中的一个查询日志,重新执行相应的查询语句;
索引处理单元,适于查看所述查询执行单元在重新执行相应的查询语句的过程中是否使用了索引;如果没有使用索引,查看所述主从式数据库系统中的其他数据库中是否存在相应的索引;如果其他数据库中存在相应的索引,则在该数据库中添加所述相应的索引。
可选地,所述索引处理单元,进一步适于当其他数据库中均不存在相应的索引时,在索引缺失列表中的添加关于该数据库缺失所述相应索引的信息;将所述索引缺失列表发送给使用该于主从式数据库系统的业务端。
可选地,所述索引处理单元,进一步适于接收所述业务端在接收到所述索引缺失列表后反馈的索引添加列表;根据所述索引添加列表,在主从式数据库系统中的各数据库中分别添加相应的索引;
和/或,
所述索引处理单元,进一步适于当所述业务端在预设时间内未反馈信息时,根据索引缺失列表在主从式数据库系统中的各数据库中分别添加相应的索引。
可选地,所述索引处理单元,进一步适于在所述在该数据库中添加所述相应的索引之前,根据该数据库对应的本地资源判断是否满足在该数据库中添加所述相应的索引条件;若是,则执行所述在该数据库中添加所述相应的索引的步骤;若否,则将相应的查询请求路由到存在相应的索引的其他数据库。
可选地,所述查询执行单元,适于针对该数据库,新建一个对应的备份数据库;根据该数据库的慢查询日志文件中的一个查询日志,在该数据库的新建的备份数据库中重新执行相应的查询语句。
可选地,所述查询执行单元,适于根据该数据库的慢查询日志文件中的一个查询日志,在所述主从式数据库系统自有的备份数据库中重新执行相应的查询语句;
所述主从式数据库系统自有的备份数据库是所述主从式数据库系统中的任一个数据库的备份数据库。
可选地,所述查询执行单元,适于根据慢查询日志文件中的一个查询日志,直接在该数据库中重新执行相应的查询语句。
可选地,所述查询执行单元,适于根据该数据库的访问量的时间分布,确定该数据库的访问量小于预设阈值的时间段;在所确定的时间段内,根据慢查询日志文件中的一个查询日志,直接在该数据库中重新执行相应的查询语句。
根据本发明的技术方案,通过查询主从式数据库中的其中一个数据库的慢查询日志获取查询用时超过预设时长的查询日志,重新执行后判断造成查询用时超时的原因是否是因为没有索引导致的,若是,则查看该主从式数据路系统中其它数据库中是否存在相应索引,如果有,则在该数据库中添加相应的索引,防止对该数据库的查询请求因为该条索引的却是导致的查询时间过长,查询效率低。综上所述,本发明可以及时发现主从数据库系统的数据库中缺失的索引并进行添加处理,有效减少数据库中慢查询,提高查询速度。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明一个实施例的一种主从式数据库系统中的索引处理方法的流程示意图;
图2示出了根据本发明一个实施例的一种主从式数据库系统中的索引处理装置的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了根据本发明一个实施例的一种主从式数据库系统中的索引处理方法的流程示意图。如图1所示,该方法包括:
步骤S110,对于主从式数据库系统中的一个数据库,获取该数据库的慢查询日志文件;慢查询日志文件中记录了查询用时超过预设时长的查询日志。
本步骤中的慢查询就是查询用时超过预设时长的查询,慢查询被记录在相应的慢查询日志文件中,这里的预设时长可以设定为5s,当一条查询请求的查询时间查过5s,就认为该查询为慢查询,被记录在慢查询日志文件中。
步骤S120,根据该数据的慢查询日志文件中的一个查询日志,重新执行相应的查询语句,并查看重新执行相应的查询语句的过程中是否使用了索引。
导致某条查询成为慢查询的原因有很多,可能是网络原因、访问量过大或者是没有使用索引。因此,为了判断慢查询日志中的慢查询是否因为没有使用索引导致的查询用时长,对慢查询日志文件中的一个查询日志进行重新执行相应的查询语句,找出查询用时超过预设时长的原因所在。
步骤S130,如果没有使用索引,查看主从式数据库系统中的其他数据库中是否存在相应的索引。
步骤S120中重新执行查询语句后发现是因为没有使用索引导致的查询用时超过预设时长,该相应的索引就是该数据库的缺失索引,但是在其它的数据库中该缺失索引可能存在也可能不存在。为了判断该缺失索引是该数据库缺失还是整个数据库系统都缺失,对主从式数据库系统中的其他数据库中进行查看是否存在该索引,这里可以通过performance_schema.table_io_waits_summary_by_index_usage表进行查询。
步骤S140,如果其他数据库中存在相应的索引,则在该数据库中添加相应的索引。
如果其他数据库中存在相应的索引,说明该缺失索引只是在该数据库中缺失,那么就可以及时在该数据库中添加相应的索引,这样在对该数据库再次进行该条查新请求的时候,就可以使用相应的索引进行查询,提高查询速度。
可见,本发明的方法可以及时发现主从数据库系统的数据库中缺失的索引并进行添加处理,有效减少数据库中慢查询,提高查询速度。
其他数据库中不存在相应的索引的情况也会出现,说明缺失索引是整个数据库系统都缺失的,那么,在本发明的一个实施例中,该方法进一步包括:如果其他数据库中均不存在相应的索引,在索引缺失列表中添加关于该数据库缺失相应索引的信息;将索引缺失列表发送给使用该主从式数据库系统的业务端。
其他数据库中也不存在相应的索引,但是相应的数据需要该条索引进行查询,那么就需要设定这样一个索引,新建索引的时候可以分析查询语句,截取“where”后的条件字段,生成索引。这里预先设置一个索引缺失列表,将新生成的索引添加到索引缺失列表,同时,主从式数据库系统是供业务端使用的,索引的设置是为业务端查询数据提供便利,在数据库中添加索引的时候需要征求业务端的意见,所以当索引缺失列表添加完成后,将该索引缺失缺失列表发送给业务端。
业务端会根据索引添加列表进行判断那条索引该添加,哪条索引不需要添加,并统计出一个索引添加列表。进一步地,本实施例中的方法进一步包括:接收业务端在接收到索引缺失列表后反馈的索引添加列表;根据索引添加列表,在主从式数据库系统中的各数据库中分别添加相应的索引。这里添加相应的索引的操作可以是业务端自行添加,也可以通过返回索引添加列表,数据库维护人员进行添加。
在发送给用户的索引缺失列表中可以附加上预设时间信息(例如2天),如果用户在预设时间(2天)内没有及时反馈信息,数据库维护人员将自动默认索引缺失列表的索引都是需要添加的索引。所以,本实施例中的方法还包括:当业务端在预设时间内未反馈信息时,根据索引缺失列表在主从式数据库系统中的各数据库中分别添加相应的索引。
然而,本领域技术人员应可了解,上述经过业务端确认后方可添加缺失索引的方式并非本发明的限制。由于没有该缺失索引会导致查询速度慢,添加缺失索引对业务端的影响也有限,因此当各数据库中缺失索引保存到索引缺失列表后,也可以不经过业务端同意而直接进行添加的操作。
进行缺失索引的添加是为了提高该数据库的查询速度,但是该数据库的本地资源(例如数据库的存储容量)已经不允许添加索引了,如果再进行添加的操作会影响本发明技术方案的运行性能。所以,在本发明的一个实施例中,在步骤S140中的在该数据库中添加相应的索引之前,图1所示的方法进一步包括:
根据该数据库对应的本地资源判断是否满足在该数据库中添加相应的索引条件;若是,则执行在该数据库中添加相应的索引的步骤;若否,为了提高查询速度,接收到查询请求后,则将相应的查询请求路由到存在相应的索引的其他数据库。
为了判断慢查询日志中的慢查询是否因为没有使用索引导致的查询用时长,图1所示的方法中的步骤S120中需要根据慢查询日志文件中的一个查询日志,重新执行相应的查询语句。为了不影响数据库正常的使用和使用效率,这里进行重新执行相应的查询语句的方法有三种:
(1)在本发明的一个实施例中,步骤S120的根据慢查询日志文件中的一个查询日志,重新执行相应的查询语句包括:
针对该数据库,新建一个对应的备份数据库;该备份数据库是为了重新执行查询语句所建,其中的数据和该数据库中的数据具有相同的结构、格式和数据信息。然后再根据该数据库的慢查询日志文件中的一个查询日志,在该数据库的新建的备份数据库中重新执行相应的查询语句。
(2)主从式数据库系统中有自有的备份数据库,在本发明的一个实施例中,步骤S120的根据慢查询日志文件中的一个查询日志,重新执行相应的查询语句包括:根据该数据库的慢查询日志文件中的一个查询日志,在主从式数据库系统自有的备份数据库中重新执行相应的查询语句;主从式数据库系统自有的备份数据库是主从式数据库系统中的任一个数据库的备份数据库。
但是无法明确的知道该自有的备份数据库中的数据是来自主库还是哪个从库,那么重新执行相应的查询语句后,如果在该备份数据库下,查询语句使用了索引,就去查看主从数据库系统中的每个数据库中是否存在该条索引,判断该条索引是哪个数据库缺失的索引;如果没有使用索引,也需要去查看主从数据库系统中的每个数据库,判断该条索引是哪个数据库缺失的索引。
(3)在本发明的一个实施例中,步骤S120的根据慢查询日志文件中的一个查询日志,重新执行相应的查询语句包括:根据慢查询日志文件中的一个查询日志,直接在该数据库中重新执行相应的查询语句。
这里直接在该数据库中重新执行相应的查询语句可以是在该数据库本身的访问量不大的情况下,或者该数据库访问量不大的时间段进行。
具体地,上述(3)中的根据慢查询日志文件中的一个查询日志,直接在该数据库中重新执行相应的查询语句包括:根据该数据库的访问量的时间分布,确定该数据库的访问量小于预设阈值的时间段;在所确定的时间段内,根据慢查询日志文件中的一个查询日志,直接在该数据库中重新执行相应的查询语句。例如,通过数据库的访问量的时间分布发现在一天中的凌晨1点到6点这个时间段内,该数据库的访问量小于预设阈值,那么就在凌晨1点到6点的时间段内直接在该数据库中重新执行相应的查询语句。这里的预设阈值可以根据该数据库自身的情况进行设定,例如,该数据库本身的访问量就比较少,那么预设阈值可以定的大一点;该数据库本身的访问量就特别多,那么预设阈值可以定的小一点,才不会影响正常数据库的正常工作。
图2示出了根据本发明一个实施例的一种主从式数据库系统中的索引处理装置的结构示意图。如图2所示,该主从式数据库系统中的索引处理装置200包括:
慢查询获取单元210,适于对于主从式数据库系统中的一个数据库,获取该数据库的慢查询日志文件;慢查询日志文件中记录了查询用时超过预设时长的查询日志。
本步骤中的慢查询就是查询用时超过预设时长的查询,慢查询被记录在相应的慢查询日志文件中,这里的预设时长可以设定为5s,当一条查询请求的查询时间查过5s,就认为该查询为慢查询,被记录在慢查询日志文件中。
查询执行单元220,适于根据该数据的慢查询日志文件中的一个查询日志,重新执行相应的查询语句。
导致某条查询成为慢查询的原因有很多,可能是网络原因、访问量过大或者是没有使用索引。因此,为了判断慢查询日志中的慢查询是否因为没有使用索引导致的查询用时长,对慢查询日志文件中的一个查询日志进行重新执行相应的查询语句,找出查询用时超过预设时长的原因所在。
索引处理单元230,适于查看查询执行单元220在重新执行相应的查询语句的过程中是否使用了索引;如果没有使用索引,查看主从式数据库系统中的其他数据库中是否存在相应的索引;如果其他数据库中存在相应的索引,则在该数据库中添加相应的索引。
为了找出查询用时超过预设时长的原因是否是因为没有使用索引,就需要查看查询执行单元220在重新执行相应的查询语句的过程中是否使用了索引。如果发现是因为没有使用索引导致的查询用时超过预设时长,该相应的索引就是该数据库的缺失索引,但是在其它的数据库中该缺失索引可能存在也可能不存在。为了判断该缺失索引只是该数据库中缺失还是整个数据库系统都缺失,对主从式数据库系统中的其他数据库中进行查看是否存在该索引,这里可以通过performance_schema.table_io_waits_summary_by_index_usage表进行查询。
如果其他数据库中存在相应的索引,说明该缺失索引只是在该数据库中缺失,那么就可以及时在该数据库中添加相应的索引,这样在对该数据库再次进行该条查新请求的时候,就可以使用相应的索引进行查询,提高查询速度。
可见,本发明的装置可以及时发现主从数据库系统的数据库中缺失的索引,并进行添加,有效减少数据库中慢查询,提高查询速度。
其他数据库中不存在相应的索引的情况也会出现,说明缺失索引是整个数据库系统都缺失的,那么,在本发明的一个实施例中,索引处理单元230,进一步适于当其他数据库中均不存在相应的索引时,在索引缺失列表中的添加关于该数据库缺失相应索引的信息;将索引缺失列表发送给使用该于主从式数据库系统的业务端。
其他数据库中也不存在相应的索引,但是相应的数据需要该条索引进行查询,那么就需要设定这样一个索引,新建索引的时候可以分析查询语句,截取“where”后的条件字段,生成索引。这里预先设置一个索引缺失列表,将新生成的索引添加到索引缺失列表,同时,主从式数据库系统是供业务端使用的,索引的设置是为业务端查询数据提供便利,在数据库中添加索引的时候需要征求业务端的意见,所以当索引缺失列表添加完成后,将该索引缺失缺失列表发送给业务端。
业务端会根据索引添加列表进行判断那条索引该添加,哪条索引不需要添加,并统计出一个索引添加列表。进一步地,本实施例中的索引处理单元230,进一步适于接收业务端在接收到索引缺失列表后反馈的索引添加列表;根据索引添加列表,在主从式数据库系统中的各数据库中分别添加相应的索引。这里添加相应的索引的操作可以是业务端自行添加,也可以通过返回索引添加列表,数据库维护人员进行添加。
在发送给用户的索引缺失列表中可以附加上预设时间信息(例如2天),如果用户在预设时间(2天)内没有及时反馈信息,数据库维护人员将自动默认索引缺失列表的索引都是需要添加的索引。所以,本实施例中的索引处理单元230,进一步适于当业务端在预设时间内未反馈信息时,根据索引缺失列表在主从式数据库系统中的各数据库中分别添加相应的索引。
然而,本领域技术人员应可了解,上述经过业务端确认后方可添加缺失索引的方式并非本发明的限制。由于没有该缺失索引会导致查询速度慢,添加缺失索引对业务端的影响也有限,因此当各数据库中缺失索引保存到索引缺失列表后,也可以不经过业务端同意而直接进行添加的操作。
进行缺失索引的添加是为了提高该数据库的查询速度,但是该数据库的本地资源(例如存储空间)已经不允许添加索引了,如果再进行添加的操作会影响本发明技术方案的运行性能。所以,在本发明的一个实施例中,索引处理单元230,进一步适于在在该数据库中添加相应的索引之前,根据该数据库对应的本地资源判断是否满足在该数据库中添加相应的索引条件;若是,则执行在该数据库中添加相应的索引的步骤;若否,为了提高查询速度,接收到查询请求后,则将相应的查询请求路由到存在相应的索引的其他数据库。
为了判断慢查询日志中的慢查询是否因为没有使用索引导致的查询用时长,图2所示的装置中的查询执行单元220需要根据慢查询日志文件中的一个查询日志,重新执行相应的查询语句。为了不影响数据库正常的使用和使用效率,这里进行重新执行相应的查询语句的方法有三种:
(1)在本发明的一个实施例中,查询执行单元220,适于针对该数据库,新建一个对应的备份数据库该备份数据库是为了重新执行查询语句所建,其中的数据和该数据库中的数据具有相同的结构、格式和数据信息。然后再根据该数据库的慢查询日志文件中的一个查询日志,在该数据库的新建的备份数据库中重新执行相应的查询语句。
(2)主从式数据库系统中有自有的备份数据库,在本发明的一个实施例中,查询执行单元220,适于根据该数据库的慢查询日志文件中的一个查询日志,在主从式数据库系统自有的备份数据库中重新执行相应的查询语句;主从式数据库系统自有的备份数据库是主从式数据库系统中的任一个数据库的备份数据库。
但是无法明确的知道该自有的备份数据库中的数据是来自主库还是哪个从库,那么重新执行相应的查询语句后,如果在该备份数据库下,查询语句使用了索引,就去查看主从数据库系统中的每个数据库中是否存在该条索引,判断该条索引是哪个数据库缺失的索引;如果没有使用索引,也需要去查看主从数据库系统中的每个数据库,判断该条索引是哪个数据库缺失的索引。
(3)在本发明的一个实施例中,查询执行单元220,适于根据慢查询日志文件中的一个查询日志,直接在该数据库中重新执行相应的查询语句。
这里直接在该数据库中重新执行相应的查询语句可以是在该数据库本身的访问量不大的情况下,或者该数据库访问量不大的时间段进行。
具体地,上述(3)中的查询执行单元220,适于根据该数据库的访问量的时间分布,确定该数据库的访问量小于预设阈值的时间段;在所确定的时间段内,根据慢查询日志文件中的一个查询日志,直接在该数据库中重新执行相应的查询语句。例如,通过数据库的访问量的时间分布发现在一天中的凌晨1点到6点这个时间段内,该数据库的访问量小于预设阈值,那么就在凌晨1点到6点的时间段内直接在该数据库中重新执行相应的查询语句。这里的预设阈值可以根据该数据库自身的情况进行设定,例如,该数据库本身的访问量就比较少,那么预设阈值可以定的大一点;该数据库本身的访问量就特别多,那么预设阈值可以定的小一点,才不会影响正常数据库的正常工作。
需要说明的是,图2所示装置的各实施例与图1所示方法的各实施例对应相同,上文已有详细说明,在此不再赘述。
综上所述,根据本发明的技术方案,通过查询主从式数据库中的其中一个数据库的慢查询日志获取查询用时超过预设时长的查询日志,重新执行后判断造成查询用时超时的原因是否是因为没有索引导致的,若是,则查看该主从式数据路系统中其它数据库中是否存在相应索引,如果有,则在该数据库中添加相应的索引,防止对该数据库的查询请求因为该条索引的却是导致的查询时间过长,查询效率低。可见,本发明可以及时发现主从数据库系统的数据库中缺失的索引并进行添加处理,有效减少数据库中慢查询,提高查询速度。
需要说明的是:
在此提供的算法和显示不与任何特定计算机、虚拟装置或者其它设备固有相关。各种通用装置也可以与基于在此的示教一起使用。根据上面的描述,构造这类装置所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的主从式数据库系统中的索引处理装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
本发明公开了A1、一种主从式数据库系统中的索引处理方法,包括:
对于主从式数据库系统中的一个数据库,获取该数据库的慢查询日志文件;所述慢查询日志文件中记录了查询用时超过预设时长的查询日志;
根据该数据的慢查询日志文件中的一个查询日志,重新执行相应的查询语句,并查看重新执行相应的查询语句的过程中是否使用了索引;
如果没有使用索引,查看所述主从式数据库系统中的其他数据库中是否存在相应的索引;
如果其他数据库中存在相应的索引,则在该数据库中添加所述相应的索引。
A2、如A1所述的方法,其中,该方法进一步包括:
如果其他数据库中均不存在相应的索引,在索引缺失列表中添加关于该数据库缺失所述相应索引的信息;
将所述索引缺失列表发送给使用该主从式数据库系统的业务端。
A3、如A2所述的方法,其中,该方法进一步包括:
接收所述业务端在接收到所述索引缺失列表后反馈的索引添加列表;根据所述索引添加列表,在主从式数据库系统中的各数据库中分别添加相应的索引;
和/或,
当所述业务端在预设时间内未反馈信息时,根据索引缺失列表在主从式数据库系统中的各数据库中分别添加相应的索引。
A4、如A1所述的方法,其中,在所述在该数据库中添加所述相应的索引之前,该方法进一步包括:
根据该数据库对应的本地资源判断是否满足在该数据库中添加所述相应的索引条件;
若是,则执行所述在该数据库中添加所述相应的索引的步骤;
若否,则将相应的查询请求路由到存在相应的索引的其他数据库。
A5、如A1所述的方法,其中,所述根据慢查询日志文件中的一个查询日志,重新执行相应的查询语句包括:
针对该数据库,新建一个对应的备份数据库;
根据该数据库的慢查询日志文件中的一个查询日志,在该数据库的新建的备份数据库中重新执行相应的查询语句。
A6、如A1所述的方法,其中,所述根据慢查询日志文件中的一个查询日志,重新执行相应的查询语句包括:
根据该数据库的慢查询日志文件中的一个查询日志,在所述主从式数据库系统自有的备份数据库中重新执行相应的查询语句;
所述主从式数据库系统自有的备份数据库是所述主从式数据库系统中的任一个数据库的备份数据库。
A7、如A1所述的方法,其中,所述根据慢查询日志文件中的一个查询日志,重新执行相应的查询语句包括:
根据慢查询日志文件中的一个查询日志,直接在该数据库中重新执行相应的查询语句。
A8、如A7所述的方法,其中,根据慢查询日志文件中的一个查询日志,直接在该数据库中重新执行相应的查询语句包括:
根据该数据库的访问量的时间分布,确定该数据库的访问量小于预设阈值的时间段;
在所确定的时间段内,根据慢查询日志文件中的一个查询日志,直接在该数据库中重新执行相应的查询语句。
本发明还公开了B9、一种主从式数据库系统中的索引处理装置,其中,该装置包括:
慢查询获取单元,适于对于主从式数据库系统中的一个数据库,获取该数据库的慢查询日志文件;所述慢查询日志文件中记录了查询用时超过预设时长的查询日志;
查询执行单元,适于根据该数据的慢查询日志文件中的一个查询日志,重新执行相应的查询语句;
索引处理单元,适于查看所述查询执行单元在重新执行相应的查询语句的过程中是否使用了索引;如果没有使用索引,查看所述主从式数据库系统中的其他数据库中是否存在相应的索引;如果其他数据库中存在相应的索引,则在该数据库中添加所述相应的索引。
B10、如B9所述的装置,其中,
所述索引处理单元,进一步适于当其他数据库中均不存在相应的索引时,在索引缺失列表中的添加关于该数据库缺失所述相应索引的信息;将所述索引缺失列表发送给使用该于主从式数据库系统的业务端。
B11、如B10所述的装置,其中,
所述索引处理单元,进一步适于接收所述业务端在接收到所述索引缺失列表后反馈的索引添加列表;根据所述索引添加列表,在主从式数据库系统中的各数据库中分别添加相应的索引;
和/或,
所述索引处理单元,进一步适于当所述业务端在预设时间内未反馈信息时,根据索引缺失列表在主从式数据库系统中的各数据库中分别添加相应的索引。
B12、如B9所述的装置,其中,
所述索引处理单元,进一步适于在所述在该数据库中添加所述相应的索引之前,根据该数据库对应的本地资源判断是否满足在该数据库中添加所述相应的索引条件;若是,则执行所述在该数据库中添加所述相应的索引的步骤;若否,则将相应的查询请求路由到存在相应的索引的其他数据库。
B13、如B9所述的装置,其中,
所述查询执行单元,适于针对该数据库,新建一个对应的备份数据库;根据该数据库的慢查询日志文件中的一个查询日志,在该数据库的新建的备份数据库中重新执行相应的查询语句。
B14、如B9所述的装置,其中,
所述查询执行单元,适于根据该数据库的慢查询日志文件中的一个查询日志,在所述主从式数据库系统自有的备份数据库中重新执行相应的查询语句;
所述主从式数据库系统自有的备份数据库是所述主从式数据库系统中的任一个数据库的备份数据库。
B15、如B9所述的装置,其中,
所述查询执行单元,适于根据慢查询日志文件中的一个查询日志,直接在该数据库中重新执行相应的查询语句。
B16、如B15所述的装置,其中,
所述查询执行单元,适于根据该数据库的访问量的时间分布,确定该数据库的访问量小于预设阈值的时间段;在所确定的时间段内,根据慢查询日志文件中的一个查询日志,直接在该数据库中重新执行相应的查询语句。
Claims (10)
1.一种主从式数据库系统中的索引处理方法,包括:
对于主从式数据库系统中的一个数据库,获取该数据库的慢查询日志文件;所述慢查询日志文件中记录了查询用时超过预设时长的查询日志;
根据该数据的慢查询日志文件中的一个查询日志,重新执行相应的查询语句,并查看重新执行相应的查询语句的过程中是否使用了索引;
如果没有使用索引,查看所述主从式数据库系统中的其他数据库中是否存在相应的索引;
如果其他数据库中存在相应的索引,则在该数据库中添加所述相应的索引。
2.如权利要求1所述的方法,其中,该方法进一步包括:
如果其他数据库中均不存在相应的索引,在索引缺失列表中添加关于该数据库缺失所述相应索引的信息;
将所述索引缺失列表发送给使用该主从式数据库系统的业务端。
3.如权利要求2所述的方法,其中,该方法进一步包括:
接收所述业务端在接收到所述索引缺失列表后反馈的索引添加列表;根据所述索引添加列表,在主从式数据库系统中的各数据库中分别添加相应的索引;
和/或,
当所述业务端在预设时间内未反馈信息时,根据索引缺失列表在主从式数据库系统中的各数据库中分别添加相应的索引。
4.如权利要求1所述的方法,其中,在所述在该数据库中添加所述相应的索引之前,该方法进一步包括:
根据该数据库对应的本地资源判断是否满足在该数据库中添加所述相应的索引条件;
若是,则执行所述在该数据库中添加所述相应的索引的步骤;
若否,则将相应的查询请求路由到存在相应的索引的其他数据库。
5.如权利要求1所述的方法,其中,所述根据慢查询日志文件中的一个查询日志,重新执行相应的查询语句包括:
针对该数据库,新建一个对应的备份数据库;
根据该数据库的慢查询日志文件中的一个查询日志,在该数据库的新建的备份数据库中重新执行相应的查询语句。
6.一种主从式数据库系统中的索引处理装置,其中,该装置包括:
慢查询获取单元,适于对于主从式数据库系统中的一个数据库,获取该数据库的慢查询日志文件;所述慢查询日志文件中记录了查询用时超过预设时长的查询日志;
查询执行单元,适于根据该数据的慢查询日志文件中的一个查询日志,重新执行相应的查询语句;
索引处理单元,适于查看所述查询执行单元在重新执行相应的查询语句的过程中是否使用了索引;如果没有使用索引,查看所述主从式数据库系统中的其他数据库中是否存在相应的索引;如果其他数据库中存在相应的索引,则在该数据库中添加所述相应的索引。
7.如权利要求6所述的装置,其中,
所述索引处理单元,进一步适于当其他数据库中均不存在相应的索引时,在索引缺失列表中的添加关于该数据库缺失所述相应索引的信息;将所述索引缺失列表发送给使用该于主从式数据库系统的业务端。
8.如权利要求7所述的装置,其中,
所述索引处理单元,进一步适于接收所述业务端在接收到所述索引缺失列表后反馈的索引添加列表;根据所述索引添加列表,在主从式数据库系统中的各数据库中分别添加相应的索引;
和/或,
所述索引处理单元,进一步适于当所述业务端在预设时间内未反馈信息时,根据索引缺失列表在主从式数据库系统中的各数据库中分别添加相应的索引。
9.如权利要求6所述的装置,其中,
所述索引处理单元,进一步适于在所述在该数据库中添加所述相应的索引之前,根据该数据库对应的本地资源判断是否满足在该数据库中添加所述相应的索引条件;若是,则执行所述在该数据库中添加所述相应的索引的步骤;若否,则将相应的查询请求路由到存在相应的索引的其他数据库。
10.如权利要求6所述的装置,其中,
所述查询执行单元,适于针对该数据库,新建一个对应的备份数据库;根据该数据库的慢查询日志文件中的一个查询日志,在该数据库的新建的备份数据库中重新执行相应的查询语句。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611016891.5A CN106649584B (zh) | 2016-11-18 | 2016-11-18 | 一种主从式数据库系统中的索引处理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611016891.5A CN106649584B (zh) | 2016-11-18 | 2016-11-18 | 一种主从式数据库系统中的索引处理方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106649584A true CN106649584A (zh) | 2017-05-10 |
CN106649584B CN106649584B (zh) | 2020-04-24 |
Family
ID=58808680
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611016891.5A Active CN106649584B (zh) | 2016-11-18 | 2016-11-18 | 一种主从式数据库系统中的索引处理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106649584B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106776702A (zh) * | 2016-11-11 | 2017-05-31 | 北京奇虎科技有限公司 | 一种处理主从式数据库系统中的索引的方法和装置 |
CN110795614A (zh) * | 2019-09-27 | 2020-02-14 | 广东浪潮大数据研究有限公司 | 一种索引自动优化方法及装置 |
CN112181840A (zh) * | 2020-09-30 | 2021-01-05 | 深圳前海微众银行股份有限公司 | 一种数据库状态的确定方法及装置、设备、存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101620617A (zh) * | 2009-07-28 | 2010-01-06 | 中兴通讯股份有限公司 | 日志文件的查询和处理的方法及装置 |
CN104714984A (zh) * | 2013-12-17 | 2015-06-17 | 中国移动通信集团湖南有限公司 | 一种数据库优化的方法和装置 |
CN104794129A (zh) * | 2014-01-20 | 2015-07-22 | 阿里巴巴集团控股有限公司 | 一种基于查询日志的数据处理方法和系统 |
CN105279276A (zh) * | 2015-11-11 | 2016-01-27 | 浪潮(北京)电子信息产业有限公司 | 一种数据库索引优化系统 |
CN105279213A (zh) * | 2015-03-13 | 2016-01-27 | 中国移动通信集团广东有限公司 | 一种日志数据库检索装置及检索方法 |
-
2016
- 2016-11-18 CN CN201611016891.5A patent/CN106649584B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101620617A (zh) * | 2009-07-28 | 2010-01-06 | 中兴通讯股份有限公司 | 日志文件的查询和处理的方法及装置 |
CN104714984A (zh) * | 2013-12-17 | 2015-06-17 | 中国移动通信集团湖南有限公司 | 一种数据库优化的方法和装置 |
CN104794129A (zh) * | 2014-01-20 | 2015-07-22 | 阿里巴巴集团控股有限公司 | 一种基于查询日志的数据处理方法和系统 |
CN105279213A (zh) * | 2015-03-13 | 2016-01-27 | 中国移动通信集团广东有限公司 | 一种日志数据库检索装置及检索方法 |
CN105279276A (zh) * | 2015-11-11 | 2016-01-27 | 浪潮(北京)电子信息产业有限公司 | 一种数据库索引优化系统 |
Non-Patent Citations (1)
Title |
---|
郑祖芳: "分布式并行时空索引技术研究", 《中国博士学位论文全文数据库 基础科学辑》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106776702A (zh) * | 2016-11-11 | 2017-05-31 | 北京奇虎科技有限公司 | 一种处理主从式数据库系统中的索引的方法和装置 |
CN106776702B (zh) * | 2016-11-11 | 2021-03-05 | 北京奇虎科技有限公司 | 一种处理主从式数据库系统中的索引的方法和装置 |
CN110795614A (zh) * | 2019-09-27 | 2020-02-14 | 广东浪潮大数据研究有限公司 | 一种索引自动优化方法及装置 |
CN112181840A (zh) * | 2020-09-30 | 2021-01-05 | 深圳前海微众银行股份有限公司 | 一种数据库状态的确定方法及装置、设备、存储介质 |
WO2022068540A1 (zh) * | 2020-09-30 | 2022-04-07 | 深圳前海微众银行股份有限公司 | 一种数据库状态的确定方法及装置、设备、存储介质 |
CN112181840B (zh) * | 2020-09-30 | 2023-09-26 | 深圳前海微众银行股份有限公司 | 一种数据库状态的确定方法及装置、设备、存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN106649584B (zh) | 2020-04-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112199366B (zh) | 数据表处理方法、装置及设备 | |
US10977256B2 (en) | System for aggregation and prioritization of IT asset field values from real-time event logs and method thereof | |
CN108388604A (zh) | 用户权限数据管理装置、方法及计算机可读存储介质 | |
CN100590620C (zh) | 用于使记录在分区之间移动的系统和方法 | |
CN104933173B (zh) | 一种用于异构多数据源的数据处理方法、装置和服务器 | |
EP3188051B1 (en) | Systems and methods for search template generation | |
CN104424287B (zh) | 数据查询方法和装置 | |
CN103064933A (zh) | 数据查询方法及系统 | |
EP2044536A1 (en) | Data processing over very large databases | |
DE102007038340A1 (de) | Systeme und Verfahren zur Wartung von Prozesssteuersystemen | |
CN103034735A (zh) | 一种大数据分布式文件导出方法 | |
CN103927331A (zh) | 数据查询方法、装置及系统 | |
CN104468777A (zh) | 数据操作方法和装置 | |
CN112214505A (zh) | 数据同步方法、装置、计算机可读存储介质及电子设备 | |
CN105989163A (zh) | 数据实时处理方法及系统 | |
US20200036812A1 (en) | Resource Download Method, Electronic Device, and Apparatus | |
CN106649584A (zh) | 一种主从式数据库系统中的索引处理方法和装置 | |
US20190278691A1 (en) | Automated recovery of flighted features based on service requests | |
CN112579578A (zh) | 基于元数据的数据质量管理方法、装置、系统及服务器 | |
CN106952085B (zh) | 一种数据存储与业务处理的方法及装置 | |
CN104598652B (zh) | 一种数据库查询方法及装置 | |
CN113742392A (zh) | 一种数据同步方法、装置、电子设备及存储介质 | |
US11500874B2 (en) | Systems and methods for linking metric data to resources | |
US20210216516A1 (en) | Management of a secondary vertex index for a graph | |
CN114416868A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20240116 Address after: 100088 room 112, block D, 28 new street, new street, Xicheng District, Beijing (Desheng Park) Patentee after: BEIJING QIHOO TECHNOLOGY Co.,Ltd. Address before: 100088 room 112, block D, 28 new street, new street, Xicheng District, Beijing (Desheng Park) Patentee before: BEIJING QIHOO TECHNOLOGY Co.,Ltd. Patentee before: Qizhi software (Beijing) Co.,Ltd. |
|
TR01 | Transfer of patent right |