CN116578548A - 数据库管理方法、系统、电子设备及存储介质 - Google Patents
数据库管理方法、系统、电子设备及存储介质 Download PDFInfo
- Publication number
- CN116578548A CN116578548A CN202310568373.8A CN202310568373A CN116578548A CN 116578548 A CN116578548 A CN 116578548A CN 202310568373 A CN202310568373 A CN 202310568373A CN 116578548 A CN116578548 A CN 116578548A
- Authority
- CN
- China
- Prior art keywords
- database
- target
- data
- calling
- query
- 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
- 238000007726 management method Methods 0.000 title claims abstract description 108
- 238000000034 method Methods 0.000 claims abstract description 18
- 238000004590 computer program Methods 0.000 claims description 12
- 230000004044 response Effects 0.000 claims description 4
- 238000004891 communication Methods 0.000 description 7
- 230000015556 catabolic process Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000004064 recycling Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008094 contradictory effect Effects 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 239000000523 sample Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012360 testing 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/21—Design, administration or maintenance of databases
- G06F16/217—Database tuning
-
- 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/242—Query formulation
- G06F16/2433—Query languages
- G06F16/2445—Data retrieval commands; View definitions
-
- 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/2455—Query execution
- G06F16/24564—Applying rules; Deductive queries
- G06F16/24565—Triggers; Constraints
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及计算机技术领域,提供一种数据库管理方法、系统、电子设备及存储介质,该方法包括:响应用户终端发起的数据库调取请求,获取数据库调取请求中用户终端的数据调取策略和目标调取数据库;确定目标调取数据库的数据库策略;基于数据调取策略和数据库策略,在目标调取数据库中调取目标调取数据。本发明提供的数据库管理方法在数据库侧设限定了数据库策略,在用户终端侧限定了数据调取策略,因此通过数据调取策略和数据库策略共同限制了用户终端在数据库中数据访问量,解决了数据库访问负载的问题,同时通过数据调取策略和数据库策略共同防止了用户终端在数据库中调取大量的数据,解决了用户终端的内存管理和垃圾回收的问题。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种数据库管理方法、系统、电子设备及存储介质。
背景技术
对于提供物联网接入服务的SaaS平台,平台接入数百万台的设备,数据库每日的数据访问量达到亿量级别,庞大的数据访问量使得数据库经常出现告警问题乃至数据库故障问题。数据库告警问题和数据库故障问题影响较大,除了对数据库自身造成负载影响之外,数据经由链路返回到应用后,还会造成用户终端的内存管理和垃圾回收的问题。
发明内容
本发明提供一种数据库管理方法、系统、电子设备及存储介质,旨在解决数据库负载,以及用户终端的内存管理和垃圾回收的问题中的至少之一。
第一方面,本发明提供一种数据库管理方法,包括:
响应用户终端发起的数据库调取请求,获取所述数据库调取请求中用户终端的数据调取策略和目标调取数据库;
确定所述目标调取数据库的数据库策略;
基于所述数据调取策略和所述数据库策略,在所述目标调取数据库中调取目标调取数据。
在一个实施例中,所述数据库调取请求还包括第一调用语句和调取数据库的应用信息;
所述基于所述数据调取策略和所述数据库策略,在所述目标调取数据库中调取目标调取数据,包括:
若确定所述数据调取策略为分页调取策略,则确定所述第一调用语句中是否存在限制条件语句;
若确定所述第一调用语句中存在限制条件语句,则确定所述限制条件语句中的数据返回行数是否大于预设阈值;
若确定所述数据返回行数大于所述预设阈值,则根据所述应用信息确定目标应用,并根据所述目标应用和所述数据库策略,在所述目标调取数据库中调取所述目标应用的目标调取数据。
所述根据所述目标应用和所述数据库策略,在所述目标调取数据库中调取所述目标应用的目标调取数据,包括:
确定在所述目标调取数据库的预设应用白名单中,是否能匹配出所述目标应用;
若确定在所述预设应用白名单中能匹配出所述目标应用,则确定所述预设应用白名单的最大返回行数;
根据所述最大返回行数,在所述目标调取数据库中调取所述目标应用的目标调取数据。
所述确定所述第一调用语句中是否存在限制条件语句之后,还包括:
若确定所述第一调用语句中不存在限制条件语句,则在所述第一调用语句中增加预设限制语句,得到更新后的第二调用语句;
根据所述第二调用语句,在所述目标调取数据库中调取所述目标应用的目标调取数据。
所述数据库调取请求还包括调取数据库的目标应用的应用信息;
所述基于所述数据调取策略和所述数据库策略,在所述目标调取数据库中调取目标调取数据,包括:
若确定所述数据调取策略为不分页调取策略,则确定所述目标应用的数据查询量,并确定所述数据查询量是否大于所述目标调取数据库的预设最大查询量;
若确定所述数据查询量小于或者等于所述预设最大查询量,则根据所述数据查询量,在所述目标调取数据库中调取所述目标应用的目标调取数据。
所述数据库管理方法还包括:
获取基于Skywalking采集到的调用数据库的第一链路span数据;
确定出所述第一链路span数据中,携带有相同的调用链路编号traceid的第二链路span数据;
确定出所述第二链路span数据中,携带有相同的所属应用信息、操作名称信息和组件信息的目标链路span数据;
根据系统日志信息和所述目标链路span数据的调用链路编号traceid,确定出重复调用数据库的应用。
所述数据库管理方法还包括:
获取查询数据库的查询条件,并将所述查询条件进行条件组合,得到各个查询组合条件;
确定所述各个查询组合条件在查询数据库时的查询时间;
基于所述各个查询时间,确定出所述各个查询组合条件中的目标查询组合条件,并基于所述查询组合条件在查询数据库时进行拦截。
第二方面,本发明提供一种数据库管理系统,包括:
响应获取模块,用于响应用户终端发起的数据库调取请求,获取所述数据库调取请求中用户终端的数据调取策略和目标调取数据库;
确定模块,用于确定所述目标调取数据库的数据库策略;
数据库管理模块,用于基于所述数据调取策略和所述数据库策略,在所述目标调取数据库中调取目标调取数据。
第三方面,本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现第一方面所述数据库管理方法。
第四方面,本发明还提供一种非暂态计算机可读存储介质,非暂态计算机可读存储介质包括计算机程序,所述计算机程序被所述处理器执行时实现第一方面所述数据库管理方法。
第五方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被所述处理器执行时实现第一方面所述数据库管理方法。
本发明提供的数据库管理方法、系统、电子设备及存储介质,响应用户终端发起的数据库调取请求,获取数据库调取请求中用户终端的数据调取策略和目标调取数据库;确定目标调取数据库的数据库策略;基于数据调取策略和数据库策略,在目标调取数据库中调取目标调取数据。在数据库管理的过程中,数据库侧设限定了数据库策略,用户终端侧限定了数据调取策略,因此通过数据调取策略和数据库策略共同限制了用户终端在数据库中数据访问量,解决了数据库访问负载的问题,同时通过数据调取策略和数据库策略共同防止了用户终端在数据库中调取大量的数据,解决了用户终端的内存管理和垃圾回收的问题。
附图说明
为了更清楚地说明本发明的技术方案,下面将对实施例或现有技术描述中所需使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的数据库管理方法的流程示意图;
图2是本发明提供的数据库管理系统的结构示意图;
图3是本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了数据库管理方法的实施例,需要说明的是,虽然在流程图中示出了逻辑顺序,但是在某些数据下,可以以不同于此处的顺序完成所示出或描述的步骤。
物联网(Internet of Things,IoT)是指通过信息传感设备,按约定的协议,将任何物体与网络相连接,物体通过信息传播媒介进行信息交换和通信,以实现智能化识别、定位、跟踪、监管等功能。
SaaS即Software as a Service,意为软件即服务。SaaS是一种软件部署模式,第三方供应商在云基础设施上构建应用程序,并以订阅的形式,通过互联网向客户提供这些应用程序,不要求客户预先建设底层基础设施。这意味着软件可以在任何有互联网连接和网络浏览器的设备上访问,而不像传统软件那样只能在本地机器上安装。
通过提供IoT+SaaS解决方案,可以帮助各类客户实现消费者在自助设备上的扫码支付启动,并且帮助商家实现智能设备,共享设备,自助设备等多种设备的管理和经营。这些服务可以被应用于各类自助行业设备,商家可以通过管理后台进行统一的现金管理,设备管理,营销活动,大数据服务等等,IoT+SaaS解决方案可以帮助商家实现统一平台管理所有消费物联网设备,避免各类设备产生的数据孤岛,同时减少了依靠人工的工作所带来的成本和麻烦。
若商户设备接入SaaS平台,在日常的业务中会产生数据,这些数据会根据业务的需求上报到SaaS平台上,并被存储在数据库中。商户和普通用户在使用设备以及SaaS平台所提供的软件服务时,不可避免地会调用数据库,因此,在设备量庞大的情况下,数据库会被频繁调用,如果出现大量慢查询的情况,将会导致数据库堵塞,而慢查询产生的主要原因是调取的数据量庞大。为此,本发明实施例将提供一套数据库管理方法来阻断这些数据库风险。
参照图1,图1是本发明提供的数据库管理方法的流程示意图。本发明实施例提供的数据库管理方法包括:
步骤101,响应用户终端发起的数据库调取请求,获取所述数据库调取请求中用户终端的数据调取策略和目标调取数据库;
步骤102,确定所述目标调取数据库的数据库策略;
步骤103,基于所述数据调取策略和所述数据库策略,在所述目标调取数据库中调取目标调取数据。
本发明实施例以数据库管理系统作为执行主体为例对数据库管理方法进行描述,但是执行主体不限定于数据库管理系统。
具体地,用户终端需要调取数据库中的数据时,首先需要向数据库管理系统发起数据库调取请求。需要说明的是,用户终端中安装有多个应用程序,因此实际可以理解为,实际为应用程序通过应用终端调取数据库管理系统中数据库的数据。
进一步地,数据库管理系统侦测到用户终端发送的数据库调取请求,响应用户终端发起的数据库调取请求。需要说明的是,数据库调取请求中至少携带有用户终端的数据调取策略和目标调取数据库,因此可以理解为,数据库管理系统响应数据库调取请求后,获取据库调取请求中的数据调取策略和目标调取数据库。
另外,可以理解的是,在数据库侧和终端侧同时设置检查和策略并不矛盾,因为对于SaaS平台而言,可能会有很多接入商户,接入的软件数量也比较多,在双方均设置防范措施,可以避免在新软件接入时由于软件措施设置有问题的情况下,导致数据库被阻塞,因此,需要确定数据库的数据库策略,将数据库的数据库策略和用户终端的数据调取策略结合进行调取数据,具体为:
数据库管理系统确定目标调取数据库的数据库策略,并根据用户终端的数据调取策略和目标调取数据库的数据库策略,共同限制用户终端在目标调取数据库中调取目标调取数据。
在一实施例中,数据调取策略可为分页调取策略和非分页调取策略,目标调取数据库的数据库策略可以为设置应用白名单策略和最大查询量策略,应用白名单策略即在白名单中的应用执行某一策略,不在白名单中的应用执行另外的策略。
因此可以理解为,数据库管理系统根据数据调取策略是分页调取策略还是非分页调取策略,以及结合应用白名单策略或最大查询量策略,共同限制用户终端在目标调取数据库中调取目标调取数据。
本发明实施例提供的数据库管理方法,响应用户终端发起的数据库调取请求,获取数据库调取请求中用户终端的数据调取策略和目标调取数据库;确定目标调取数据库的数据库策略;基于数据调取策略和数据库策略,在目标调取数据库中调取目标调取数据。在数据库管理的过程中,数据库侧设限定了数据库策略,用户终端侧限定了数据调取策略,因此通过数据调取策略和数据库策略共同限制了用户终端在数据库中数据访问量,解决了数据库访问负载的问题,因而避免了未设置相关限制措施的用户终端接入数据库,从而避免了数据库崩溃和数据库故障。同时,在数据库管理的过程中,通过数据调取策略和数据库策略共同防止了用户终端在数据库中调取大量的数据,解决了用户终端的内存管理和垃圾回收的问题。
进一步地,步骤103记载的基于所述数据调取策略和所述数据库策略,在所述目标调取数据库中调取目标调取数据,包括:
若确定所述数据调取策略为分页调取策略,则确定所述第一调用语句中是否存在限制条件语句;
若确定所述第一调用语句中存在限制条件语句,则确定所述限制条件语句中的数据返回行数是否大于预设阈值;
若确定所述数据返回行数大于所述预设阈值,则根据所述应用信息确定目标应用,并根据所述目标应用和所述数据库策略,在所述目标调取数据库中调取所述目标应用的目标调取数据;
若确定所述第一调用语句中不存在限制条件语句,则在所述第一调用语句中增加预设限制语句,得到更新后的第二调用语句;
根据所述第二调用语句,在所述目标调取数据库中调取所述目标应用的目标调取数据。
具体地,数据库管理系统确定数据调取策略是分页调取策略,还是非分页调取策略。若确定数据调取策略是分页调取策略,数据库管理系统则获取数据库调取请求中携带的第一调用语句,并确定第一调用语句中是否存在limit限制条件语句。
进一步地,若确定第一调用语句中存在limit限制条件语句,数据库管理系统则确定limit限制条件语句中的数据返回行数,并将数据返回行数与预设阈值进行数值大小比较,得到比较结果,其中,预设阈值根据实际情况设定的。
进一步地,若确定比较结果为数据返回行数大于预设阈值,数据库管理系统则获取出数据库调取请求中调取数据库的应用信息,并根据应用信息确定出调用数据库的目标应用。进一步地,数据库管理系统根据目标应用和数据库策略,在目标调取数据库中调取出目标应用的目标调取数据。
进一步地,若确定比较结果为数据返回行数小于或者等于预设阈值,数据库管理系统则根据数据返回行数,在目标调取数据库中调取出目标应用的目标调取数据。
进一步地,若确定第一调用语句中不存在limit限制条件语句,数据库管理系统则在第一调用语句中增加预设限制语句,得到更新后的第二调用语句,其中,预设限制语句根据实际情况设定。
进一步地,数据库管理系统根据携带有预设limit限制语句的第二调用语句,在目标调取数据库中调取目标应用的目标调取数据。
本发明实施例通过限制条件语句、数据返回行数、目标应用和数据库策略,共同限制了用户终端在数据库中数据访问量,解决了数据库访问负载的问题,避免了未设置相关限制措施的用户终端接入数据库,避免数据库崩溃和数据库故障。同时,防止了用户终端在数据库中调取大量的数据,解决了用户终端的内存管理和垃圾回收的问题。
进一步地,根据所述目标应用和所述数据库策略,在所述目标调取数据库中调取所述目标应用的目标调取数据,包括:
确定在所述目标调取数据库的预设应用白名单中,是否能匹配出所述目标应用;
若确定在所述预设应用白名单中能匹配出所述目标应用,则确定所述预设应用白名单的最大返回行数;
根据所述最大返回行数,在所述目标调取数据库中调取所述目标应用的目标调取数据。
需要说明的是,数据库策略具体为:设置一个应用白名单,如对于应用白名单中的应用,则采取策略1。如对于非应用白名单中的应用,则采取策略2,其中,策略1和策略2可自行定义,应用白名单中的应用是数据量较少,已知会不产生大数据量的应用,在一实施例中,数据量可以设置为10000行,也可以为100000行等。
在一实施例中,策略1可为:数据库DB(database)设置默认的最大返回行数,最大返回行数的目的是限制查询返回的最大行数,防止没有设置limit限制数量或单次查询返回过多行数的情况。需要说明的是,如果条件语句中设置了limit限制条件语句,则最大返回行数此参数可忽略。另外需要说明的是,设置最大返回行数可能会引起业务逻辑错误,如设置最大返回行数为10w,原始语句中要求查出30w行的数据,且30w行的数据能正常处理完成,即不会出现查询超时、OOM内存溢出等问题,那则会导致本次逻辑上少处理了数据。因此,这就是应用白名单只适用于数据量较少,且会不产生大数据量的应用的原因。
在一实施例中,策略2可为:超过预设数据量查询阈值,则不会在数据库中调取数据返回用户终端,否则可能引起用户终端的内存占用过多,导致内存管理问题和垃圾回收问题。具体为:对于MySQL可用的有max_join_size(最大数值)+sql_big_selects(相当于开关值)设置,其目的是当执行多表连接时,MySQL优化器会估算需要检查多少个行组合,如果估算值超过了max_join_size行,则会产生一个错误,当错误产生时,不会在数据库中调取数据返回查询结果。
因此具体可以理解为,数据库管理系统获取出目标调取数据库的预设应用白名单,其中,预设应用白名单是根据实际情况设定的应用白名单。进一步地,数据库管理系统确定在预设应用白名单中,是否能匹配出目标应用。
进一步地,若确定在预设应用白名单中能匹配出目标应用,即目标应用是预设应用白名单中的应用,数据库管理系统则确定预设应用白名单的最大返回行数,以及确定目标应用的需求返回行数。
进一步地,数据库管理系统将需求返回行数和最大返回行数进行数值大小比较,确定需求返回行数和最大返回行数的大小关系。
进一步地,若确定需求返回行数大于最大返回行数,数据库管理系统则根据最大返回行数,在目标调取数据库中调取目标应用的目标调取数据。若确定需求返回行数小于或者等于最大返回行数,数据库管理系统则根据需求返回行数,在目标调取数据库中调取目标应用的目标调取数据。
本发明实施例通过预设应用白名单及其最大返回行数,共同限制了用户终端在数据库中数据访问量,解决了数据库访问负载的问题,避免了未设置相关限制措施的用户终端接入数据库,从而避免了数据库崩溃和数据库故障。同时,防止了用户终端在数据库中调取大量的数据,解决了用户终端的内存管理和垃圾回收的问题。
进一步地,基于所述数据调取策略和所述数据库策略,在所述目标调取数据库中调取目标调取数据,包括:
若确定所述数据调取策略为不分页调取策略,则确定所述目标应用的数据查询量,并确定所述数据查询量是否大于所述目标调取数据库的预设最大查询量;
若确定所述数据查询量小于或者等于所述预设最大查询量,则根据所述数据查询量,在所述目标调取数据库中调取所述目标应用的目标调取数据。
具体地,若确定数据调取策略为不分页调取策略,数据库管理系统则获取出数据库调取请求中调取数据库的应用信息,并根据应用信息确定出调用数据库的目标应用。进一步地,数据库管理系统确定目标应用的数据查询量,并将数据查询量与目标调取数据库的预设最大查询量进行数值大小比较,确定数据查询量是否大于预设最大查询量,其中,预设最大查询量根据实际情况设定。
进一步地,若确定数据查询量小于或者等于预设最大查询量,数据库管理系统则根据数据查询量,在目标调取数据库中调取目标应用的目标调取数据。若确定数据查询量大于最大查询量,数据库管理系统则不在数据库中调取数据返回用户终端。
本发明实施例通过数据库的预设最大查询量限制了用户终端在数据库中数据访问量,解决了数据库访问负载的问题,避免了未设置相关限制措施的用户终端接入数据库,从而避免了数据库崩溃和数据库故障。同时,防止了用户终端在数据库中调取大量的数据,解决了用户终端的内存管理和垃圾回收的问题。
进一步地,数据库管理方法还包括:
获取基于Skywalking采集到的调用数据库的第一链路span数据;
确定出所述第一链路span数据中,携带有相同的调用链路编号traceid的第二链路span数据;
确定出所述第二链路span数据中,携带有相同的所属应用信息、操作名称信息和组件信息的目标链路span数据;
根据系统日志信息和所述目标链路span数据的调用链路编号traceid,确定出重复调用数据库的应用。
需要说明的是,数据库管理的事后措施可以采用APM工具对数据库调用进行数据收集和分析,确定出重复调用数据库的情况,并输出问题的定位结果,数据库管理的事后措施具体为:启动Skywalking对应用程序进行监视,Skywalking是一个国产开源APM组件,是一个对Java分布式应用程序集群的业务运行情况进行追踪、告警和分析的系统。skywalking支持SpringBoot、SpringCloud、dubbo集成,代码无侵入,通信方式采用GRPC,性能较好,实现方式是Java探针,支持告警,支持JVM监控,支持全局调用统计等等。
具体地,数据库管理系统按照一定的周期调取由Skywalking所采集的span,即间隔预设时长获取基于Skywalking采集到的调用数据库的第一链路span数据,其中,间隔预设时长根据实际情况设定。需要说明的是,一个调用链路trace中包含多个链路span数据,链路span数据为链路中数据收集到的最小单位。
进一步地,数据库管理系统对属于相同调用链路trace的第一链路span数据进行数据比对,在一实施例中,通过调用链路编号traceid(Identity Document,身份标识)确定第一链路span数据是否属于同一调用链路trace。因此可理解为,数据库管理系统确定出第一链路span数据中,携带有相同调用链路编号traceid的第二链路span数据。
需要说明的是,通过比对在相同调用链路trace下链路span数据的内容,两个或以上的链路span数据的内容由相同的applicationCode所属应用+operationName操作名称+component组件组成,则视为重复调用。若链路span数据中没有这些参数,就不需要进行数据比对。
也即,当确定存在两个链路span数据中的上述参数相同,则确定该调用链路trace中存在重复调用。因此,数据库管理系统获取出第二链路span数据的applicationCode所属应用信息、operationName操作名称信息和component组件信息。
进一步地,数据库管理系统将第二链路span数据中,携带有相同的applicationCode所属应用信息、operationName操作名称信息和component组件信息的链路span数据,确定为目标链路span数据。
进一步地,数据库管理系统根据系统日志信息和目标链路span数据的调用链路编号traceid,确定出重复调用数据库的应用,其中,系统日志信息是系统自动生成的日志。
本发明实施例通过所属应用信息、操作名称信息、组件信息和调用链路编号traceid,定位出重复调用数据库的应用,从而避免了应用对数据库的重复多次调用,减少了数据库的访问量,进而避免了数据库崩溃和数据库故障。
进一步地,数据库管理方法还包括:
获取查询数据库的查询条件,并将所述查询条件进行条件组合,得到各个查询组合条件;
确定所述各个查询组合条件在查询数据库时的查询时间;
基于所述各个查询时间,确定出所述各个查询组合条件中的目标查询组合条件,并基于所述查询组合条件在查询数据库时进行拦截。
需要说明的是,用户终端侧还包括DAO层(Data Access Object),DAO模型就是写一个类,把访问数据库的代码封装起来,DAO在数据库与业务逻辑(Service)之间。Dao是数据访问层,Dao的作用是封装对数据库的访问进行增加、删除、修改和检查,不涉及业务逻辑,只是达到按某个条件获得指定数据的要求,因此可以理解为,在DAO层,每个数据库都有对应的操作函数。
Dao层封装了数据库的一些访问操作,本发明实施例从DAO层函数设计中留有检查步骤,即在调用数据库时,检查通过<where><if>控制的组合查询条件,这些条件中如果关键参数都为空,则可能导致查询返回大量数据,即本发明实施例是防止调用不当的一种措施。
在一实施例中,原来函数的调用需要三个条件,如果三个条件中包括条件1或条件2的情况下,查询性能都比较高,而仅传条件3的时候,查询性能比较差。如果检查<where><if>语句时,发现缺失了条件1和条件2(关键条件)时,可以拦截这一调用,避免错误调用导致数据库大量调用。由于每个表的设计和数据量都是不一致了,所以哪些条件是关键条件是不清楚的,需要经过测试来确定,关键条件可以通过组合条件的方式确定,具体过程为:
数据库管理系统获取查询数据库的查询条件,并将所述查询条件进行条件组合,得到各个查询组合条件。进一步地,数据库管理系统确定各个查询组合条件在查询数据库时的查询时间,其中,查询时间可以体现出在查询数据库时的查询性能。进一步地,数据库管理系统根据各个查询时间,确定出各个查询组合条件中的目标查询组合条件,并根据目标查询组合条件建立条件名单,其中,目标查询组合条件为查询时间大于预设时间的查询组合条件,也即查询性能不满足预设要求的查询组合条件,预设时间和预设要求很具实际情况设定,进一步地,用户终端在通过查询组合条件在查询数据库时,数据库管理系统根据建立的条件名单进行查询拦截。
在一实施例中,有三个条件,将三个条件所有的组合都刷一遍,找出只要存在就会查询性能好的条件,这些条件就是关键条件,实际可以理解为如果这些关键条件对应的参数都没有,查询性能肯定会有问题,查询性能可以使用查询时间来界定。还可以理解为,实际上也可以把性能不好的条件组合方式进行拦截。例如,还是上面3个条件,可以根据对DAO层<where><if>语句在不同条件组合下的查询性能来确定出性能比较差的查询条件组合,然后建立一个名单,在DAO层调用数据库之前,进行查询拦截。
本发明实施例设置DAO层防止了调用不当,同时,通过查询组合条件建立条件名单进行查询拦截,定位出导致慢查询的原因。
进一步地,本发明提供的数据库管理系统与本发明提供的数据库管理方法互对应参照。
图2所示,图2是本发明提供的数据库管理系统的结构示意图,数据库管理系统包括:
响应获取模块201,用于响应用户终端发起的数据库调取请求,获取所述数据库调取请求中用户终端的数据调取策略和目标调取数据库;
确定模块202,用于确定所述目标调取数据库的数据库策略;
数据库管理模块203,用于基于所述数据调取策略和所述数据库策略,在所述目标调取数据库中调取目标调取数据。
进一步地,数据库管理模块203还用于:
若确定所述数据调取策略为分页调取策略,则确定所述第一调用语句中是否存在限制条件语句;
若确定所述第一调用语句中存在限制条件语句,则确定所述限制条件语句中的数据返回行数是否大于预设阈值;
若确定所述数据返回行数大于所述预设阈值,则根据所述应用信息确定目标应用,并根据所述目标应用和所述数据库策略,在所述目标调取数据库中调取所述目标应用的目标调取数据。
进一步地,数据库管理模块203还用于:
确定在所述目标调取数据库的预设应用白名单中,是否能匹配出所述目标应用;
若确定在所述预设应用白名单中能匹配出所述目标应用,则确定所述预设应用白名单的最大返回行数;
根据所述最大返回行数,在所述目标调取数据库中调取所述目标应用的目标调取数据。
进一步地,数据库管理模块203还用于:
若确定所述第一调用语句中不存在限制条件语句,则在所述第一调用语句中增加预设限制语句,得到更新后的第二调用语句;
根据所述第二调用语句,在所述目标调取数据库中调取所述目标应用的目标调取数据。
进一步地,数据库管理模块203还用于:
若确定所述数据调取策略为不分页调取策略,则确定所述目标应用的数据查询量,并确定所述数据查询量是否大于所述目标调取数据库的预设最大查询量;
若确定所述数据查询量小于或者等于所述预设最大查询量,则根据所述数据查询量,在所述目标调取数据库中调取所述目标应用的目标调取数据。
进一步地,数据库管理系统还用于:
获取基于Skywalking采集到的调用数据库的第一链路span数据;
确定出所述第一链路span数据中,携带有相同的调用链路编号traceid的第二链路span数据;
确定出所述第二链路span数据中,携带有相同的所属应用信息、操作名称信息和组件信息的目标链路span数据;
根据系统日志信息和所述目标链路span数据的调用链路编号traceid,确定出重复调用数据库的应用。
进一步地,数据库管理系统还用于:
获取查询数据库的查询条件,并将所述查询条件进行条件组合,得到各个查询组合条件;
确定所述各个查询组合条件在查询数据库时的查询时间;
基于所述各个查询时间,确定出所述各个查询组合条件中的目标查询组合条件,并基于所述查询组合条件在查询数据库时进行拦截。
本发明提供的数据库管理系统的具体实施例与数据库管理方法各实施例基本相同,在此不作赘述。
图3示例了一种电子设备的实体结构示意图,如图3所示,电子设备可以包括:处理器(processor)310、通信接口(Communications Interface)320、存储器(memory)330和通信总线340,其中,处理器310,通信接口320,存储器330通过通信总线340完成相互间的通信。处理器310可以调用存储器330中的逻辑指令,以执行数据库管理方法,该方法包括:
响应用户终端发起的数据库调取请求,获取所述数据库调取请求中用户终端的数据调取策略和目标调取数据库;
确定所述目标调取数据库的数据库策略;
基于所述数据调取策略和所述数据库策略,在所述目标调取数据库中调取目标调取数据。
此外,上述的存储器330中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,计算机程序包括程序指令,当程序指令被计算机执行时,计算机能够执行上述各方法所提供的数据库管理方法,该方法包括:
响应用户终端发起的数据库调取请求,获取所述数据库调取请求中用户终端的数据调取策略和目标调取数据库;
确定所述目标调取数据库的数据库策略;
基于所述数据调取策略和所述数据库策略,在所述目标调取数据库中调取目标调取数据。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各提供的数据库管理方法,该方法包括:
响应用户终端发起的数据库调取请求,获取所述数据库调取请求中用户终端的数据调取策略和目标调取数据库;
确定所述目标调取数据库的数据库策略;
基于所述数据调取策略和所述数据库策略,在所述目标调取数据库中调取目标调取数据。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种数据库管理方法,其特征在于,包括:
响应用户终端发起的数据库调取请求,获取所述数据库调取请求中用户终端的数据调取策略和目标调取数据库;
确定所述目标调取数据库的数据库策略;
基于所述数据调取策略和所述数据库策略,在所述目标调取数据库中调取目标调取数据。
2.根据权利要求1所述的数据库管理方法,其特征在于,所述数据库调取请求还包括第一调用语句和调取数据库的应用信息;
所述基于所述数据调取策略和所述数据库策略,在所述目标调取数据库中调取目标调取数据,包括:
若确定所述数据调取策略为分页调取策略,则确定所述第一调用语句中是否存在限制条件语句;
若确定所述第一调用语句中存在限制条件语句,则确定所述限制条件语句中的数据返回行数是否大于预设阈值;
若确定所述数据返回行数大于所述预设阈值,则根据所述应用信息确定目标应用,并根据所述目标应用和所述数据库策略,在所述目标调取数据库中调取所述目标应用的目标调取数据。
3.根据权利要求2所述的数据库管理方法,其特征在于,所述根据所述目标应用和所述数据库策略,在所述目标调取数据库中调取所述目标应用的目标调取数据,包括:
确定在所述目标调取数据库的预设应用白名单中,是否能匹配出所述目标应用;
若确定在所述预设应用白名单中能匹配出所述目标应用,则确定所述预设应用白名单的最大返回行数;
根据所述最大返回行数,在所述目标调取数据库中调取所述目标应用的目标调取数据。
4.根据权利要求2所述的数据库管理方法,其特征在于,所述确定所述第一调用语句中是否存在限制条件语句之后,还包括:
若确定所述第一调用语句中不存在限制条件语句,则在所述第一调用语句中增加预设限制语句,得到更新后的第二调用语句;
根据所述第二调用语句,在所述目标调取数据库中调取所述目标应用的目标调取数据。
5.根据权利要求1所述的数据库管理方法,其特征在于,所述数据库调取请求还包括调取数据库的目标应用的应用信息;
所述基于所述数据调取策略和所述数据库策略,在所述目标调取数据库中调取目标调取数据,包括:
若确定所述数据调取策略为不分页调取策略,则确定所述目标应用的数据查询量,并确定所述数据查询量是否大于所述目标调取数据库的预设最大查询量;
若确定所述数据查询量小于或者等于所述预设最大查询量,则根据所述数据查询量,在所述目标调取数据库中调取所述目标应用的目标调取数据。
6.根据权利要求1至5任一项所述的数据库管理方法,其特征在于,所述数据库管理方法还包括:
获取基于Skywalking采集到的调用数据库的第一链路span数据;
确定出所述第一链路span数据中,携带有相同的调用链路编号traceid的第二链路span数据;
确定出所述第二链路span数据中,携带有相同的所属应用信息、操作名称信息和组件信息的目标链路span数据;
根据系统日志信息和所述目标链路span数据的调用链路编号traceid,确定出重复调用数据库的应用。
7.根据权利要求1至5任一项所述的数据库管理方法,其特征在于,所述数据库管理方法还包括:
获取查询数据库的查询条件,并将所述查询条件进行条件组合,得到各个查询组合条件;
确定所述各个查询组合条件在查询数据库时的查询时间;
基于所述各个查询时间,确定出所述各个查询组合条件中的目标查询组合条件,并基于所述查询组合条件在查询数据库时进行拦截。
8.一种数据库管理系统,其特征在于,包括:
响应获取模块,用于响应用户终端发起的数据库调取请求,获取所述数据库调取请求中用户终端的数据调取策略和目标调取数据库;
确定模块,用于确定所述目标调取数据库的数据库策略;
数据库管理模块,用于基于所述数据调取策略和所述数据库策略,在所述目标调取数据库中调取目标调取数据。
9.一种电子设备,所述电子设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7任一项所述的数据库管理方法。
10.一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7任一项所述的数据库管理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310568373.8A CN116578548B (zh) | 2023-05-18 | 2023-05-18 | 数据库管理方法、系统、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310568373.8A CN116578548B (zh) | 2023-05-18 | 2023-05-18 | 数据库管理方法、系统、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116578548A true CN116578548A (zh) | 2023-08-11 |
CN116578548B CN116578548B (zh) | 2024-06-07 |
Family
ID=87539353
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310568373.8A Active CN116578548B (zh) | 2023-05-18 | 2023-05-18 | 数据库管理方法、系统、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116578548B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5822749A (en) * | 1994-07-12 | 1998-10-13 | Sybase, Inc. | Database system with methods for improving query performance with cache optimization strategies |
US20130060781A1 (en) * | 2011-09-02 | 2013-03-07 | International Business Machines Corporation | Performing index scans in a database |
CN104978335A (zh) * | 2014-04-04 | 2015-10-14 | 阿里巴巴集团控股有限公司 | 数据访问控制方法和装置 |
CN107016045A (zh) * | 2017-02-17 | 2017-08-04 | 阿里巴巴集团控股有限公司 | 一种分页数据查询的方法及装置 |
CN108520052A (zh) * | 2018-04-04 | 2018-09-11 | 武汉斗鱼网络科技有限公司 | 慢查询信息检索方法、装置、服务器及可读存储介质 |
CN110309123A (zh) * | 2019-05-22 | 2019-10-08 | 中国平安人寿保险股份有限公司 | 数据库操作的处理方法、装置、计算机设备及存储介质 |
CN113377807A (zh) * | 2021-05-20 | 2021-09-10 | 蔚来汽车科技(安徽)有限公司 | 数据查询方法、装置以及存储介质 |
CN114090610A (zh) * | 2021-11-11 | 2022-02-25 | 上海哔哩哔哩科技有限公司 | 数据库访问方法及装置 |
CN115185979A (zh) * | 2022-07-26 | 2022-10-14 | 中国工商银行股份有限公司 | 数据访问路由方法、装置设备、存储介质和程序产品 |
CN116069802A (zh) * | 2021-10-29 | 2023-05-05 | 青岛海尔科技有限公司 | 用于访问数据库的方法、装置、电子设备及存储介质 |
-
2023
- 2023-05-18 CN CN202310568373.8A patent/CN116578548B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5822749A (en) * | 1994-07-12 | 1998-10-13 | Sybase, Inc. | Database system with methods for improving query performance with cache optimization strategies |
US20130060781A1 (en) * | 2011-09-02 | 2013-03-07 | International Business Machines Corporation | Performing index scans in a database |
CN104978335A (zh) * | 2014-04-04 | 2015-10-14 | 阿里巴巴集团控股有限公司 | 数据访问控制方法和装置 |
CN107016045A (zh) * | 2017-02-17 | 2017-08-04 | 阿里巴巴集团控股有限公司 | 一种分页数据查询的方法及装置 |
CN108520052A (zh) * | 2018-04-04 | 2018-09-11 | 武汉斗鱼网络科技有限公司 | 慢查询信息检索方法、装置、服务器及可读存储介质 |
CN110309123A (zh) * | 2019-05-22 | 2019-10-08 | 中国平安人寿保险股份有限公司 | 数据库操作的处理方法、装置、计算机设备及存储介质 |
CN113377807A (zh) * | 2021-05-20 | 2021-09-10 | 蔚来汽车科技(安徽)有限公司 | 数据查询方法、装置以及存储介质 |
CN116069802A (zh) * | 2021-10-29 | 2023-05-05 | 青岛海尔科技有限公司 | 用于访问数据库的方法、装置、电子设备及存储介质 |
CN114090610A (zh) * | 2021-11-11 | 2022-02-25 | 上海哔哩哔哩科技有限公司 | 数据库访问方法及装置 |
CN115185979A (zh) * | 2022-07-26 | 2022-10-14 | 中国工商银行股份有限公司 | 数据访问路由方法、装置设备、存储介质和程序产品 |
Non-Patent Citations (1)
Title |
---|
李仕伟;周坤;刘新蕊;李宝林;: "MySQL数据库优化技术", 信息与电脑(理论版), no. 12, 23 June 2016 (2016-06-23), pages 179 - 180 * |
Also Published As
Publication number | Publication date |
---|---|
CN116578548B (zh) | 2024-06-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2022068645A1 (zh) | 数据库故障发现方法、装置、电子设备及存储介质 | |
CN111355610A (zh) | 一种基于边缘网络的异常处理方法及装置 | |
US20100153431A1 (en) | Alert triggered statistics collections | |
CN111539633A (zh) | 一种业务数据质量的稽核方法、系统、装置和存储介质 | |
CN110083391A (zh) | 调用请求监控方法、装置、设备及存储介质 | |
CN116308824A (zh) | 基于知识图谱的团伙欺诈风险识别方法及相关设备 | |
CN111382206B (zh) | 一种数据存储方法及装置 | |
CN108255703B (zh) | 一种sql脚本的故障修复方法及其终端 | |
CN110784358A (zh) | 网络调用关系拓扑图的构建方法及装置 | |
CN110716912A (zh) | 一种sql性能检测方法及服务器 | |
CN116578548B (zh) | 数据库管理方法、系统、电子设备及存储介质 | |
CN117151726A (zh) | 故障的修复方法、修复装置、电子设备以及存储介质 | |
CN108255710B (zh) | 一种脚本的异常检测方法及其终端 | |
CN110865918A (zh) | 数据库的监控方法、装置、计算机设备和存储介质 | |
CN115437899A (zh) | 集群故障预测方法、装置、电子设备和介质 | |
CN113590180B (zh) | 一种检测策略生成方法及装置 | |
CN115242621A (zh) | 网络专线监控方法、装置、设备及计算机可读存储介质 | |
CN107957942B (zh) | 一种sql脚本的故障修复方法及其终端 | |
CN114385498A (zh) | 性能测试方法、系统、计算机设备及可读存储介质 | |
CN113342596A (zh) | 一种设备指标的分布式监控方法、系统及装置 | |
CN114221807A (zh) | 访问请求处理方法、装置、监控设备及存储介质 | |
CN114138522A (zh) | 一种微服务的故障恢复方法、装置、电子设备及介质 | |
CN113411224A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
KR100906449B1 (ko) | 데이터베이스 툴 식별 장치 및 방법 | |
CN111092966A (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 |