CN111913959A - 一种数据查询方法、装置、终端和存储介质 - Google Patents
一种数据查询方法、装置、终端和存储介质 Download PDFInfo
- Publication number
- CN111913959A CN111913959A CN202010694762.1A CN202010694762A CN111913959A CN 111913959 A CN111913959 A CN 111913959A CN 202010694762 A CN202010694762 A CN 202010694762A CN 111913959 A CN111913959 A CN 111913959A
- Authority
- CN
- China
- Prior art keywords
- database
- query
- index
- time period
- data
- 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
- 238000000034 method Methods 0.000 title claims abstract description 42
- 230000015654 memory Effects 0.000 claims description 39
- 230000004044 response Effects 0.000 claims description 31
- 238000004590 computer program Methods 0.000 claims description 10
- 230000000737 periodic effect Effects 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 15
- 230000008569 process Effects 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000013500 data storage Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000036962 time dependent Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
Images
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/22—Indexing; Data structures therefor; Storage structures
-
- 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
- G06F16/2228—Indexing structures
- G06F16/2264—Multidimensional index structures
-
- 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/23—Updating
-
- 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种数据查询方法、装置、终端和存储介质,本申请实施例的方法包括:根据接收到的针对数据库的查询指令确定所述针对数据库的查询指令对应的查询参数;其中所述数据库包括存储的数据和至少一个索引维度的查询参数之间的索引关系;根据所述针对数据库的查询指令对应的查询参数查询所述数据库中存储的数据;其中,所述索引关系是通过下列方式更新的:若预设的时间段内接收到的查询指令包含的索引维度中,有所述数据库中没有的索引维度,则在更新时间段内更新所述索引关系,上述方法能够适应性更新索引关系,提高查询数据的速度,同时避免了对数据库的频繁操作和缓存数据耗费大量内存。
Description
技术领域
本申请涉及数据处理技术领域,特别涉及一种数据查询方法、装置、终端和存储介质。
背景技术
随着科技的发展,数据库的应用也越来越广泛。对于数据量较大的数据库,直接查询数据耗时较长,通过合理设置索引,能够方便地查询到数据库中存储的内容。
为了合理设置索引,相关技术中,通过在系统内存中开辟用于存放数据和数据索引的共享内存段,由守护进程按约定的方式将数据库中存储的数据和数据索引分别调入相应的共享内存段中共业务进程调用,同时由守护进程定时或循环对数据库中的记录查询,将更新的数据内容记录到共享内存段中。
然而,上述方案需要频繁操作本地数据库,造成本地数据库的繁忙;同时,缓存数据消耗大量内存。
发明内容
本申请提供一种数据查询方法、装置、终端和存储介质,用以适应性更新索引关系,提高查询数据的速度,同时避免对数据库的频繁操作和缓存数据耗费大量内存。
第一方面,本申请实施例提供一种数据查询方法,包括;
根据接收到的针对数据库的查询指令确定所述针对数据库的查询指令对应的查询参数;其中,所述数据库包括存储的数据和至少一个索引维度的查询参数之间的索引关系;
根据所述针对数据库的查询指令对应的查询参数查询所述数据库中存储的数据;
其中,所述索引关系是通过下列方式更新的:
若预设的时间段内接收到的查询指令包含的索引维度中,有所述数据库中没有的索引维度,则在更新时间段内更新所述索引关系。
上述方案,数据库包括存储的数据和至少一个索引维度的查询参数之间的索引关系,通过在预设的时间段内接收到的查询指令包含的索引维度中有数据库中没有的索引维度时,才会在更新时间段内根据更新索引关系,因此避免了对数据库的频繁操作,同时使更新后的索引维度更加合理,进而在根据接收到的针对数据库的查询指令后,针对数据库的查询指令对应的查询参数查询数据库中存储的数据时,会提高数据库中的索引维度有针对数据库的查询指令对应的查询参数对应的查询维度的概率,从而提高了查询速度,并且上述方案没有采用通过缓存数据的方式提高查询速度,因此不存在缓存数据耗费大量内存的问题。
在一种可选的实施方式中,所述索引关系是周期性更新,通过以下方式确定所述更新时间段:
将本周期与上一周期的候选时间段相同的时间段作为本周期的更新时间段,其中所述候选时间段内接收到的所述数据库的响应次数低于第一预设次数阈值。
上述方案,通过将本周期中与上一周期数据库的操作较为空闲的时间段相同的时间段作为更新时间段,能够在一定程度上减少更新索引关系对数据库的性能造成影响,并减少更新索引关系所用时长。
在一种可选的实施方式中,所述方法还包括:
若上一周期的候选时间段中有连续的候选时间段,则将连续的候选时间段组合成一个候选时间段。
上述方案,通过将连续的候选时间段组合成一个候选时间段,能够更加准确地确定出上一周期中数据库的操作在哪些时间段更为空闲。
在一种可选的实施方式中,所述更新时间段为多个;
所述在更新时间段内更新所述索引关系,包括:
从多个更新时间段中选择出时长最长或者与当前时刻最接近的时间段;
在所述选择出的时间段内,删除所述数据库中与所述预设的时间段内接收到的查询指令包含的索引维度不同的索引维度的查询参数与数据之间的索引关系;和/或在所述选择出的时间段内,创建所述数据库中没有的预设的时间段内接收到的查询指令包含的索引维度的查询参数与数据之间的索引关系,并添加到所述数据库中。
上述方案,对于更新时间段为多个的情况,通过从多个更新时间段中选择出时长最长的时间段,从而在周期内数据库最为空闲的时间段进行索引关系的更新;或者与当前时刻最接近的时间段,从而在本周期尽早进行索引关系的更新,进而在查询数据时尽早使用到更新后的索引关系。通过在上述选择出的时间段内,删除数据库中与预设的时间段内接收到的查询指令包含的索引维度不同的索引维度的查询参数与数据之间的索引关系,从而将不常用到的索引维度的查询参数与数据之间的索引关系删除,清理数据库的内存;通过在上述选择出的时间段内,创建数据库中没有的预设的时间段内接收到的查询指令包含的索引维度的查询参数与数据之间的索引关系,并添加到所述数据库中,将常用到的预设的时间段内接收到的查询指令包含的索引维度的查询参数与数据之间的索引关系加到数据库中,提高了数据库中包含针对数据库的查询指令对应的查询参数对应的查询维度的概率,从而提高了查询速度。
在一种可选的实施方式中,所述方法还包括:
若所述选择出的时间段内所述数据库在单位时间内的响应次数大于第二预设次数阈值,则暂停在选择出的时间段内更新;
从所述更新时间段中重新选择出除所述选择出的时间段之外时长最长或者与当前时刻最接近的时间段,以及在重新选择出的时间段内继续进行更新。
上述方案,如果在选择出的时间段内数据库在单位时间内的响应次数大于第二预设次数阈值时,说明此时在对数据库进行突发的频繁操作,需要暂停在该所述选择出的时间段内更新,并从更新时间段中重新选择出除所述选择出的时间段之外时长最长或者与当前时刻最接近的时间段,以及在重新选择出的时间段内继续进行更新,避免在对数据库进行突发的频繁操作的时间段内更新索引关系,进而避免对数据库的性能造成影响。
在一种可选的实施方式中,所述根据所述针对数据库的查询指令对应的查询参数查询所述数据库中存储的数据,包括:
若所述数据库中的索引维度有针对数据库的查询指令对应的查询参数对应的查询维度,则通过所述索引关系确定所述针对数据库的查询指令对应的查询参数索引的数据;
或者若所述数据库中的索引维度没有针对数据库的查询指令对应的查询参数对应的查询维度,则通过遍历数据的所有查询参数确定所述针对数据库的查询指令对应的查询参数所关联的数据。
上述方案,对于数据库中的索引维度是否有针对数据库的查询指令对应的查询参数对应的查询维度的不同情况,采用不同的方式查询数据库中存储的数据。
第二方面,本申请实施例提供一种数据查询装置,包括:
确定模块,用于根据接收到的针对数据库的查询指令确定所述针对数据库的查询指令对应的查询参数;其中,所述数据库包括存储的数据和至少一个索引维度的查询参数之间的索引关系;
查询模块,用于根据所述针对数据库的查询指令对应的查询参数查询所述数据库中存储的数据;
更新模块,用于若预设的时间段内接收到的查询指令包含的索引维度中,有所述数据库中没有的索引维度,则在更新时间段内更新所述索引关系。
在一种可选的实施方式中,所述索引关系是周期性更新,所述更新模块通过以下方式确定所述更新时间段:
将本周期与上一周期的候选时间段相同的时间段作为本周期的更新时间段,其中所述候选时间段内接收到的所述数据库的响应次数低于第一预设次数阈值。
在一种可选的实施方式中,所述更新模块还用于:
若上一周期的候选时间段中有连续的候选时间段,则将连续的候选时间段组合成一个候选时间段。
在一种可选的实施方式中,所述更新时间段为多个;
所述更新模块在更新时间段内更新所述索引关系,包括:
从多个更新时间段中选择出时长最长或者与当前时刻最接近的时间段;
在所述选择出的时间段内,删除所述数据库中与所述预设的时间段内接收到的查询指令包含的索引维度不同的索引维度的查询参数与数据之间的索引关系;和/或在所述选择出的时间段内,创建所述数据库中没有的所述预设的时间段内接收到的查询指令包含的索引维度的查询参数与数据之间的索引关系,并添加到所述数据库中。
在一种可选的实施方式中,所述更新模块还用于:
若所述选择出的时间段内所述数据库在单位时间内的响应次数大于第二预设次数阈值,则暂停在选择出的时间段内更新;
从所述更新时间段中重新选择出除所述选择出的时间段之外时长最长或者与当前时刻最接近的时间段,以及在重新选择出的时间段内继续进行更新。
在一种可选的实施方式中,所述查询模块根据所述针对数据库的查询指令对应的查询参数查询所述数据库中存储的数据,包括:
若所述数据库中的索引维度有针对数据库的查询指令对应的查询参数对应的查询维度,则通过所述索引关系确定所述针对数据库的查询指令对应的查询参数索引的数据;
或者若所述数据库中的索引维度没有针对数据库的查询指令对应的查询参数对应的查询维度,则通过遍历数据的所有查询参数确定所述针对数据库的查询指令对应的查询参数所关联的数据。
第三方面,本申请实施例提供一种终端,包括:处理器和存储器;
其中,所述存储器存储有程序代码,当所述程序代码被所述处理器执行时,使得所述处理器执行如下步骤:
根据接收到的针对数据库的查询指令确定所述针对数据库的查询指令对应的查询参数;其中,所述数据库包括存储的数据和至少一个索引维度的查询参数之间的索引关系;
根据所述针对数据库的查询指令对应的查询参数查询所述数据库中存储的数据;
所述处理器还执行如下步骤:
若预设的时间段内接收到的查询指令包含的索引维度中,有所述数据库中没有的索引维度,则在更新时间段内更新所述索引关系。
在一种可选的实施方式中,所述索引关系是周期性更新,所述处理器还执行如下步骤:
将本周期与上一周期的候选时间段相同的时间段作为本周期的更新时间段,其中所述候选时间段内接收到的所述数据库的响应次数低于第一预设次数阈值。
在一种可选的实施方式中,所述处理器还执行如下步骤:
若上一周期的候选时间段中有连续的候选时间段,则将连续的候选时间段组合成一个候选时间段。
在一种可选的实施方式中,所述更新时间段为多个;
所述处理器具体执行:
从多个更新时间段中选择出时长最长或者与当前时刻最接近的时间段;
在所述选择出的时间段内,删除所述数据库中与所述预设的时间段内接收到的查询指令包含的索引维度不同的索引维度的查询参数与数据之间的索引关系;和/或在所述选择出的时间段内,创建所述数据库中没有的所述预设的时间段内接收到的查询指令包含的索引维度的查询参数与数据之间的索引关系,并添加到所述数据库中。
在一种可选的实施方式中,所述处理器还执行如下步骤:
若所述选择出的时间段内所述数据库在单位时间内的响应次数大于第二预设次数阈值,则暂停在选择出的时间段内更新;
从所述更新时间段中重新选择出除所述选择出的时间段之外时长最长或者与当前时刻最接近的时间段,以及在重新选择出的时间段内继续进行更新。
在一种可选的实施方式中,所述处理器具体执行:
若所述数据库中的索引维度有针对数据库的查询指令对应的查询参数对应的查询维度,则通过所述索引关系确定所述针对数据库的查询指令对应的查询参数索引的数据;
或者,若所述数据库中的索引维度没有针对数据库的查询指令对应的查询参数对应的查询维度,则通过遍历数据的所有查询参数确定所述针对数据库的查询指令对应的查询参数所关联的数据。
第四方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如下步骤:
根据接收到的针对数据库的查询指令确定所述针对数据库的查询指令对应的查询参数;其中,所述数据库包括存储的数据和至少一个索引维度的查询参数之间的索引关系;
根据所述针对数据库的查询指令对应的查询参数查询所述数据库中存储的数据;
该程序被处理器执行时还实现如下步骤:
若预设的时间段内接收到的查询指令包含的索引维度中,有所述数据库中没有的索引维度,则在更新时间段内更新所述索引关系。
在一种可选的实施方式中,所述索引关系是周期性更新,该程序被处理器执行时还实现如下步骤:
将本周期与上一周期的候选时间段相同的时间段作为本周期的更新时间段,其中所述候选时间段内接收到的所述数据库的响应次数低于第一预设次数阈值。
在一种可选的实施方式中,该程序被处理器执行时还实现如下步骤:
若上一周期的候选时间段中有连续的候选时间段,则将连续的候选时间段组合成一个候选时间段。
在一种可选的实施方式中,所述更新时间段为多个;
该程序被处理器执行时具体实现:
从多个更新时间段中选择出时长最长或者与当前时刻最接近的时间段;
在所述选择出的时间段内,删除所述数据库中与所述预设的时间段内接收到的查询指令包含的索引维度不同的索引维度的查询参数与数据之间的索引关系;和/或在所述选择出的时间段内,创建所述数据库中没有的所述预设的时间段内接收到的查询指令包含的索引维度的查询参数与数据之间的索引关系,并添加到所述数据库中。
在一种可选的实施方式中,该程序被处理器执行时还实现如下步骤:
若所述选择出的时间段内所述数据库在单位时间内的响应次数大于第二预设次数阈值,则暂停在选择出的时间段内更新;
从所述更新时间段中重新选择出除所述选择出的时间段之外时长最长或者与当前时刻最接近的时间段,以及在重新选择出的时间段内继续进行更新。
在一种可选的实施方式中,该程序被处理器执行时具体实现:
若所述数据库中的索引维度有所述查询指令对应的查询参数对应的查询维度,则通过所述索引关系确定所述查询指令对应的查询参数索引的数据;
或者,若所述数据库中的索引维度没有所述查询指令对应的查询参数对应的查询维度,则通过遍历数据的所有查询参数确定所述查询指令对应的查询参数所关联的数据。
另外,第二至四方面中任一种实现方式所带来的技术效果可参见第一方面中不同实现方式所带来的技术效果,此处不再赘述。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1为本申请实施例提供的一种终端的结构示意图;
图2为本申请实施例提供的一种索引关系示意图;
图3为本申请实施例提供的一种数据查询方法示意流程图;
图4为本申请实施例提供的一种更新索引关系的方法示意流程图;
图5A为本申请实施例提供的一个周期内园区智能事件的数据库响应次数随时间变化的示意图;
图5B为本申请实施例提供的一个周期内道路智能事件的数据库响应次数随时间变化的示意图;
图5C为本申请实施例提供的一个周期内热度事件的数据库响应次数随时间变化的示意图;
图6为本申请实施例提供的另一种更新索引关系的方法示意流程图;
图7为本申请实施例提供的再一种更新索引关系的方法示意流程图;
图8为本申请实施例提供的一种数据查询装置的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
下面对文中出现的一些词语进行解释:
1、本申请实施例中术语“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
2、本申请实施例中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应当理解为,这些类似的对象在适当情况下可以互换。
3、本申请实施例中术语“多个”是指两个或两个以上,其它量词与之类似。
对于数据量较大的数据库,直接查询数据耗时较长,通过合理设置索引,能够方便地查询到数据库中存储的内容。为了合理设置索引,相关技术中,通过在系统内存中开辟用于存放数据和数据索引的共享内存段,由守护进程按约定的方式将数据库中存储的数据和数据索引分别调入相应的共享内存段中共业务进程调用,同时由守护进程定时或循环对数据库中的记录查询,将更新的数据内容记录到共享内存段中。
然而,上述方案需要频繁操作本地数据库,造成本地数据库的繁忙;同时,缓存数据消耗大量内存。
鉴于此,本申请实施例提出一种数据查询方法、装置、终端和存储介质,上述方法中涉及的数据库包括存储的数据和至少一个索引维度的查询参数之间的索引关系,通过在预设的时间段内接收到的查询指令包含的索引维度中有数据库中没有的索引维度时,才会在更新时间段内根据更新索引关系,因此避免了对数据库的频繁操作,同时使更新后的索引维度更加合理,进而在根据接收到的针对数据库的查询指令后,针对数据库的查询指令对应的查询参数查询数据库中存储的数据时,会提高数据库中的索引维度有针对数据库的查询指令对应的查询参数对应的查询维度的概率,从而提高了查询速度,并且上述方案没有采用通过缓存数据的方式提高查询速度,因此不存在缓存数据耗费大量内存的问题。
下面结合附图及具体实施例对本申请作进一步详细的说明。
参阅图1所示,为本申请一些实施例提供的一种终端的结构示意图,该终端100中包括处理器101和存储器102。终端100包含有数据库,数据库包括但不限于数据,以及上述数据和至少一个索引维度的查询参数之间的索引关系。
图2为本申请一些实施例提供的一种索引关系的示意图,包括数据(图2以第一数据、第二数据、第三数据、第四数据、第五数据和第六数据为例进行说明)和至少一个索引维度(图2以第一维度和第二维度为例进行说明)的索引关系。如图2所示,第一数据索引第一维度的查询参数11和第二维度的查询参数22,第二数据索引第一维度的查询参数11和第二维度的查询参数23,第三数据索引第一维度的查询参数12和第二维度的查询参数21,第四数据索引第一维度的查询参数12和第二维度的查询参数22,第五数据索引第一维度的查询参数11和第二维度的查询参数23,第六数据索引第一维度的查询参数13和第二维度的查询参数23。例如:
第一维度为“存储日期”,查询参数11为“1月1日”,查询参数12为“1月2日”,查询参数13为“1月3日”;第二维度为“事件发生时间”,查询参数21为“上午8点”,查询参数22为“上午9点”,查询参数23为“上午10点”。第一数据索引“存储日期”的“1月1日”和“事件发生时间”的“上午9点”,第二数据索引“存储日期”的“1月1日”和“事件发生时间”的“上午10点”,第三数据索引“存储日期”的“1月2日”和“事件发生时间”的“上午8点”,第四数据索引“存储日期”的“1月2日”和“事件发生时间”的“上午9点”,第五数据索引“存储日期”的“1月1日”和“事件发生时间”的“上午10点”,第六数据索引“存储日期”的“1月3日”和“事件发生时间”的“上午10点”。
上述存储器102,用于存储处理器101执行的计算机程序。存储器102可以是易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);存储器102也可以是非易失性存储器(non-volatile memory),例如只读存储器,快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD)、或者存储器102是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器102可以是上述存储器的组合。
处理器101,可以包括一个或多个中央处理单元(central processing unit,CPU),图形处理单元(Graphics Processing Unit,GPU)或者为数字处理单元等等。
本申请实施例中不限定上述存储器102和处理器101之间的具体连接介质。例如:存储器102和处理器101之间可通过总线连接。所述总线可以分为地址总线、数据总线、控制总线等。
其中,所述存储器102存储有程序代码,当所述程序代码被所述处理器101执行时,使得所述处理器101执行:根据接收到的针对数据库的查询指令确定所述针对数据库的查询指令对应的查询参数;
根据所述针对数据库的查询指令对应的查询参数查询所述数据库中存储的数据;
更新所述索引关系,例如通过下列方式更新:
若预设的时间段内接收到的查询指令包含的索引维度中,有所述数据库中没有的索引维度,则在更新时间段内更新所述索引关系。
可选地,所述索引关系是周期性更新,所述处理器101还执行如下步骤:
将本周期与上一周期的候选时间段相同的时间段作为本周期的更新时间段,其中所述候选时间段内接收到的所述数据库的响应次数低于第一预设次数阈值。
可选地,所述处理器101还执行如下步骤:
若上一周期的候选时间段中有连续的候选时间段,则将连续的候选时间段组合成一个候选时间段。
可选地,所述更新时间段为多个;
所述处理器101具体执行:
从多个更新时间段中选择出时长最长或者与当前时刻最接近的时间段;
在所述选择出的时间段内,删除所述数据库中与所述预设的时间段内接收到的查询指令包含的索引维度不同的索引维度的查询参数与数据之间的索引关系;和/或在所述选择出的时间段内,创建所述数据库中没有的所述预设的时间段内接收到的查询指令包含的索引维度的查询参数与数据之间的索引关系,并添加到所述数据库中。
可选地,所述处理器101还执行如下步骤:
若所述选择出的时间段内所述数据库在单位时间内的响应次数大于第二预设次数阈值,则暂停在选择出的时间段内更新;
从所述更新时间段中重新选择出除所述选择出的时间段之外时长最长或者与当前时刻最接近的时间段,以及在重新选择出的时间段内继续进行更新。
可选地,所述处理器101具体执行:
若所述数据库中的索引维度有针对数据库的查询指令对应的查询参数对应的查询维度,则通过所述索引关系确定所述针对数据库的查询指令对应的查询参数索引的数据;
或者,若所述数据库中的索引维度没有针对数据库的查询指令对应的查询参数对应的查询维度,则通过遍历数据的所有查询参数确定所述针对数据库的查询指令对应的查询参数所关联的数据。
其中,本实施例对上述终端100的具体实现形式不做限定,例如手机、平板或者电脑等。图3为本申请实施例提供的一种数据查询方法示意流程图,应用于图1中的处理器101,如图3所示,具体包括以下步骤:
步骤301:根据接收到的针对数据库的查询指令确定所述针对数据库的查询指令对应的查询参数;其中所述数据库包括存储的数据和至少一个索引维度的查询参数之间的索引关系。
示例性的,在本周期中,根据接收到的针对数据库的查询指令,基于查询条件对查询指令进行拆分,确定出各查询维度对应的针对数据库的查询指令对应的查询参数,以本周期为当天为例,在当天接收到一条“查询存储日期为1月1日、事件发生时间为上午8点、人物性别为女的数据”的查询指令,对该查询指令进行拆分得到“存储日期”这一查询维度对应的针对数据库的查询指令对应的查询参数为“1月1日”,“事件发生时间”这一查询维度对应的针对数据库的查询指令对应的查询参数为“上午8点”,“人物性别”这一查询维度对应的针对数据库的查询指令对应的查询参数为“女”。
数据库的索引关系中,每个数据可以索引一个或者多个索引维度的查询参数,例如某一数据索引“存储日期”这一索引维度的查询参数“2月1日”,索引“事件发生时间”这一索引维度的查询参数“上午9点”,同时索引“人物性别”这一索引维度的针对数据库的查询指令对应的查询参数“女”。
其中,所述索引关系是通过下列方式更新的:
若预设的时间段内接收到的查询指令包含的索引维度中,有所述数据库中没有的索引维度,则在更新时间段内更新所述索引关系。
示例性的,所述索引关系是周期性更新,预设的时间段为上一周期,上一周期是相对于本周期而言的刚过去的周期,对该周期接收到的针对数据库的所有查询指令进行拆分,确定出该周期接收到的所有查询维度中是否有数据库中没有的索引维度,如果是则在更新时间段内更新索引关系。
在一些实施例中确定出该周期接收到的所有查询维度,可以从中确定目标索引维度,如果目标索引维度中有数据库中没有的索引维度,则在更新时间段内更新索引关系。例如该周期接收到的查询维度包括“存储日期”、“事件发生时间”、“人物性别”和“人物年龄”等查询维度,将这些查询维度的全部或者部分作为目标索引维度。如果目标索引维度中有除数据库中的索引维度之外的其他维度,如表1所示,目标索引维度包括“存储日期”、“事件发生时间”、“人物性别”和“人物年龄”,数据库中有“事件发生时间”、“人物性别”和“人物年龄”这几个索引维度,数据库中没有目标索引维度中的“存储日期”,此时需要在更新时间段内根据目标索引维度更新索引关系。如果目标索引维度中没有除数据库中的索引维度之外的其他维度,如表2所示,目标索引维度包括“事件发生时间”和“人物年龄”,数据库中有“事件发生时间”、“人物性别”和“人物年龄”这几个索引维度,此时无需更新数据库中的索引关系。
表1一种目标索引维度和数据库中的索引维度对比
目标索引维度 | 数据库中的索引维度 |
存储日期 | |
事件发生时间 | 事件发生时间 |
人物性别 | 人物性别 |
人物年龄 | 人物年龄 |
表2另一种目标索引维度和数据库中的索引维度对比
目标索引维度 | 数据库中的索引维度 |
事件发生时间 | 事件发生时间 |
人物性别 | |
人物年龄 | 人物年龄 |
本实施例中,如果将上一周期内接收到的查询指令包含的查询维度都作为目标索引维度,在查询维度较多时,会导致索引关系的更新过于频繁,以及索引关系占用数据库的内存过大,影响数据库的正常使用。基于此,需要从上述查询维度中筛选出目标索引维度。
可选地,可以通过但不限于以下两种方式确定所述目标索引维度:
确定所述上一周期内接收到的查询指令包含的各查询维度的数量,并将数量达到预设数量阈值的查询维度作为所述目标索引维度。如表3所示:
预设数量阈值为15个,上一周期内接收到的查询维度中有17个“存储日期”、24个“事件发生时间”、3个“人物性别”和16个“人物年龄”,将“存储日期”、“事件发生时间”和“人物年龄”作为目标索引维度。
表3上一周期内接收到的各查询维度的数量
查询维度 | 数量 |
存储日期 | 17 |
事件发生时间 | 24 |
人物性别 | 3 |
人物年龄 | 16 |
或者,确定所述上一周期内接收到的查询指令包含的各查询维度的数量,并将所述各查询维度的数量由大到小进行排序,以及将在预设排位前的查询维度作为所述目标索引维度。还是以表3为例:
上一周期内接收到的查询维度中有17个“存储日期”、24个“事件发生时间”、3个“人物性别”和16个“人物年龄”,按照数量由大到小进行排序,各查询维度的排位如表4所示,依次为“事件发生时间”、“存储日期”、“人物年龄”和“人物性别”,预设排位为3,“事件发生时间”和“存储日期”的排位在预设排位之前,将其作为目标索引维度。
表4上一周期内接收到的各查询维度的数量与排位
查询维度 | 数量 | 排位 |
事件发生时间 | 24 | 1 |
存储日期 | 17 | 2 |
人物年龄 | 16 | 3 |
人物性别 | 3 | 4 |
上面两种确定目标索引维度方式仅是举例说明,其他确定目标索引维度方式也适用本申请实施例,在此不再赘述。
其中,上述预设数量阈值和预设排位均可以根据实际应用场景进行设定。
通过确定上一周期内接收到的查询指令包含的各查询维度的数量,并将数量达到预设数量阈值的查询维度作为所述目标索引维度,能够使上一周期中使用较多的查询维度都作为目标索引维度,基于通过这种方式确定的目标索引维度去更新数据库中的索引关系,能够大大提高数据库中的索引维度有针对数据库的查询指令对应的查询参数对应的查询维度的概率;通过将上述各查询维度的数量由大到小进行排序,将在预设排位前的查询维度作为目标索引维度,对于数据库的内存较小的情形能够合理确定出一定数量的目标索引维度,避免索引维度过多时影响数据库的使用。
步骤302:根据所述针对数据库的查询指令对应的查询参数查询所述数据库中存储的数据。
示例性的,针对数据库的查询指令对应的查询参数是查询指令中携带的所要查询的数据中的查询参数,数据中包含至少一个维度的查询参数。可以通过查询索引关系中的查询参数或者遍历各数据的所有查询参数等方式,确定有该针对数据库的查询指令对应的查询参数的数据。
可选地,可以通过但不限于如下两种方式查询数据库中存储的数据:
若所述数据库中的索引维度有针对数据库的查询指令对应的查询参数对应的查询维度,则通过所述索引关系确定所述针对数据库的查询指令对应的查询参数索引的数据。
例如,数据库中有“事件发生时间”、“人物性别”和“人物年龄”这几个索引维度,针对数据库的查询指令对应的查询参数“上午8点”对应的查询维度为“事件发生时间”,数据库中有“事件发生时间”这一索引维度,可通过索引关系确定“上午8点”索引的数据。
或者,若所述数据库中的索引维度没有针对数据库的查询指令对应的查询参数对应的查询维度,则通过遍历数据的所有查询参数确定所述针对数据库的查询指令对应的查询参数所关联的数据。
例如:另一针对数据库的查询指令对应的查询参数“1月1日”对应的查询维度为“存储日期”,数据库中没有“存储日期”这一索引维度,只能遍历各数据中的所有查询参数,找到各数据中“存储日期”的查询参数,才能确定“存储日期”为“1月1日”所关联的数据。
上面两种查询方式仅是举例说明,其他确定查询方式也适用本申请实施例,在此不再赘述。
由上述可知,当数据库中的索引维度没有针对数据库的查询指令对应的查询参数对应的查询维度时,查询过程较为繁琐、费时,由于本实施例根据上一周期内使用的查询维度适应性地更新数据库中的索引维度,提高了数据库中的索引维度有针对数据库的查询指令对应的查询参数对应的查询维度的概率,进而提高查询效率。
上述方案,数据库包括存储的数据和至少一个索引维度的查询参数之间的索引关系,通过在预设的时间段内接收到的查询指令包含的索引维度中有数据库中没有的索引维度时,才会在更新时间段内根据更新索引关系,因此避免了对数据库的频繁操作,同时使更新后的索引维度更加合理,进而在根据接收到的针对数据库的查询指令后,针对数据库的查询指令对应的查询参数查询数据库中存储的数据时,会提高数据库中的索引维度有针对数据库的查询指令对应的查询参数对应的查询维度的概率,从而提高了查询速度,并且上述方案没有采用通过缓存数据的方式提高查询速度,因此不存在缓存数据耗费大量内存的问题。
图4为本申请实施例提供的一种更新索引关系的方法示意流程图,应用于图1中的处理器101,如图4所示,具体包括以下步骤:
步骤401:将本周期与上一周期的候选时间段相同的时间段作为本周期的更新时间段,其中所述候选时间段内接收到的所述数据库的响应次数低于第一预设次数阈值。
参阅图5A-C所示为在一个周期内不同智能事件的数据库响应次数随时间变化的示意图,大多数事件都不是一直在发生,因此数据库总会出现忙时和闲时。如图5A所示,该园区智能事件的数据库忙时为6:00~23:00,闲时为23:00~00:00和00:00~6:00;如图5B所示,该道路智能事件的数据库忙时为6:00~23:00,闲时为23:00~00:00和00:00~6:00;如图5C所示,该热度事件的数据库忙时为每个整点时刻,闲时为除整点时刻以外的时间。
如果选择了数据库忙时对索引关系进行更新,会影响数据库的性能,例如在对数据库进行数据存入或者数据查询操作时更新索引关系,容易影响到数据存入或者查询,更新索引关系也需要用更长的时间才能完成。基于此,需要确定出数据库一般在哪些时间段比较空闲。
示例性的,对于大多数事件每个周期内的发生规律是基本相同的,因此将上一周期内划分为多个时间段,将接收到的数据库的响应次数低于第一预设次数阈值的时间段作为候选时间段,并将上一周期的候选时间段相同的时间段作为本周期的更新时间段。例如一个周期为一天,每分钟为一个时间段,每个时间段内数据库的响应次数如表5所示,如果第一预设次数阈值为2,将第1、2、3、5、……、482、……、1439、1440时间段作为候选时间段,并将本周期的第1、2、3、5、……、482、……、1439、1440时间段作为更新时间段。其中,上述第一预设次数阈值可以根据实际应用场景进行设定,此处不做具体限定。
表5上一周期中的各时间段内数据库的响应次数
时间段 | 数据库的响应次数 |
1 | 0 |
2 | 1 |
3 | 0 |
4 | 5 |
5 | 1 |
...... | ...... |
480 | 5 |
481 | 10 |
482 | 0 |
483 | 26 |
...... | ...... |
720 | 100 |
721 | 15 |
...... | ...... |
1439 | 0 |
1440 | 0 |
可选地,若上一周期的候选时间段中有连续的候选时间段,则将连续的候选时间段组合成一个候选时间段。
还是以一个周期为一天,每分钟为一个时间段为例进行说明,如上述表5所示,如果第一预设次数阈值为2,第1-3、……、1439-1440时间段为连续的候选时间段,将连续的第1-3、……、1439-1440时间段分别组合成一个候选时间段,也就是将本周期的第1-3、5、……、482、……、1439-1440时间段作为更新时间段。
通过将连续的候选时间段组合成一个候选时间段,能够更加准确地确定出上一周期中数据库在哪些时间段更为空闲,例如第1-3时间段比第5时间段时长要长,显然数据库在第1-3时间段比在第5时间段更加空闲。
步骤402:若预设的时间段内接收到的查询指令包含的索引维度中,有所述数据库中没有的索引维度,则在更新时间段内更新所述索引关系。
该步骤402的实现方式可参照上述实施例,此处不再赘述。
上述方案,通过将本周期中与上一周期数据库的操作较为空闲的时间段相同的时间段作为更新时间段,能够在一定程度上减少更新索引关系对数据库的性能造成影响,并减少更新索引关系所用时长。
对于更新时间段为多个的场景,图6为本申请实施例提供的另一种更新索引关系的方法示意流程图,应用于图1中的处理器101,如图6所示,具体包括以下步骤:
步骤601:将本周期与上一周期的候选时间段相同的时间段作为本周期的更新时间段,其中所述候选时间段内接收到的所述数据库的响应次数低于第一预设次数阈值。
该步骤601与上述步骤401实现方式相同,此处不再赘述。
步骤602:若预设的时间段内接收到的查询指令包含的索引维度中,有所述数据库中没有的索引维度,则从多个更新时间段中选择出时长最长或者与当前时刻最接近的时间段。
对于更新时间段为多个的场景,需要先选择出一个时间段。还是以一个周期为一天,每分钟为一个时间段,本周期的第1-3、5、……、482、……、1439-1440时间段为更新时间段为例进行说明,各更新时间段的时长有长有短,有的较早有的较晚。通过从多个更新时间段中选择出时长最长的时间段,如第1-3时间段时长最长,选择出1-3时间段(上一周期内数据库最为空闲的时间段)进行索引关系的更新。或者从多个更新时间段中选择出与当前时刻最接近的时间段,如当前时间在本周期的第4时间段,可选择第5时间段进行更新,从第5时间段更新完成后到周期结束这段时间内,查询数据时都能使用到更新后的索引关系。
步骤603:在所述选择出的时间段内,删除所述数据库中与所述预设的时间段内接收到的查询指令包含的索引维度不同的索引维度的查询参数与数据之间的索引关系;和/或在所述选择出的时间段内,创建所述数据库中没有的所述预设的时间段内接收到的查询指令包含的索引维度的查询参数与数据之间的索引关系,并添加到所述数据库中。
例如:预设的时间段内接收到的查询指令包含的索引维度包括“存储日期”、“人物性别”和“人物年龄”这几个维度,数据库中有“事件发生时间”、“人物性别”和“人物年龄”这几个维度,预设的时间段内接收到的查询指令包含的索引维度中有数据库中没有的“存储日期”这个维度,将数据库中与预设的时间段内接收到的查询指令包含的索引维度不同的“事件发生时间”这一索引维度的查询参数与数据之间的索引关系删除,并且创建数据库中没有的“存储日期”这一目标索引维度的查询参数与数据之间的索引关系,并该索引关系添加到所述数据库中。
上述方案,对于更新时间段为多个的情况,通过从多个更新时间段中选择出时长最长的时间段,从而在周期内数据库最为空闲的时间段进行索引关系的更新;或者与当前时刻最接近的时间段,从而在本周期尽早进行索引关系的更新,进而在查询数据时尽早使用到更新后的索引关系。通过在上述选择出的时间段内,删除数据库中与预设的时间段内接收到的查询指令包含的索引维度不同的索引维度的查询参数与数据之间的索引关系,从而将不常用到的索引维度的查询参数与数据之间的索引关系删除,清理数据库的内存;和/或在上述选择出的时间段内,创建数据库中没有的预设的时间段内接收到的查询指令包含的索引维度的查询参数与数据之间的索引关系,并添加到所述数据库中,将常用到的索引维度的查询参数与数据之间的索引关系加到数据库中,提高了数据库中包含针对数据库的查询指令对应的查询参数对应的查询维度的概率,从而提高了查询速度。
对于更新时间段为多个的场景,图7为本申请实施例提供的再一种更新索引关系的方法示意流程图,应用于图1中的处理器101,如图7所示,具体包括以下步骤:
步骤701:将本周期与上一周期的候选时间段相同的时间段作为本周期的更新时间段,其中所述候选时间段内接收到的所述数据库的响应次数低于第一预设次数阈值。
步骤702:若预设的时间段内接收到的查询指令包含的索引维度中,有所述数据库中没有的索引维度,则从多个更新时间段中选择出时长最长或者与当前时刻最接近的时间段。
步骤703:在所述选择出的时间段内,删除所述数据库中与所述预设的时间段内接收到的查询指令包含的索引维度不同的索引维度的查询参数与数据之间的索引关系;和/或在所述选择出的时间段内,创建所述数据库中没有的所述预设的时间段内接收到的查询指令包含的索引维度的查询参数与数据之间的索引关系,并添加到所述数据库中。
步骤701-703与上述步骤601-603的实现方式相同,此处不再赘述。
步骤704:若所述选择出的时间段内所述数据库在单位时间内的响应次数大于第二预设次数阈值,则暂停在选择出的时间段内更新。
上述是基于上一周期的数据库比较空闲时间段选择出的本周期的时间段,对于多数情况下选择出的时间段是本周期内数据库比较空闲的时间段。但是在本周期内随时可能会有突发事件,此时会对数据库进行突发的频繁操作,在这时就不能在选择出的时间段内继续更新。
步骤705:从所述更新时间段中重新选择出除所述选择出的时间段之外时长最长或者与当前时刻最接近的时间段,以及在重新选择出的时间段内继续进行更新。
从所述更新时间段中重新选择出除所述选择出的时间段之外时长最长或者与当前时刻最接近的时间段的具体实现方式可参见上述实施例,此处不再赘述。
上述方案,如果在选择出的时间段内数据库在单位时间内的响应次数大于第二预设次数阈值时,说明此时在对数据库进行突发的频繁操作,需要暂停在该所述选择出的时间段内更新,并从更新时间段中重新选择出除所述选择出的时间段之外时长最长或者与当前时刻最接近的时间段,以及在重新选择出的时间段内继续进行更新,避免在对数据库进行突发的频繁操作的时间段内更新索引关系,进而避免对数据库的性能造成影响。
如图8所示,基于相同的发明构思,本申请实施例提供一种数据查询装置800,包括:
确定模块801,用于根据接收到的针对数据库的查询指令确定所述针对数据库的查询指令对应的查询参数;其中所述数据库包括存储的数据和至少一个索引维度的查询参数之间的索引关系;
查询模块802,用于根据所述针对数据库的查询指令对应的查询参数查询所述数据库中存储的数据;
更新模块803,若预设的时间段内接收到的查询指令包含的索引维度中,有所述数据库中没有的索引维度,则在更新时间段内更新所述索引关系。
可选地,所述索引关系是周期性更新,所述更新模块803还用于通过以下方式确定所述更新时间段:
将本周期与上一周期的候选时间段相同的时间段作为本周期的更新时间段,其中所述候选时间段内接收到的所述数据库的响应次数低于第一预设次数阈值。
可选地,所述更新模块803还用于:
若上一周期的候选时间段中有连续的候选时间段,则将连续的候选时间段组合成一个候选时间段。
可选地,所述更新时间段为多个;
所述更新模块803在更新时间段内更新所述索引关系,包括:
从多个更新时间段中选择出时长最长或者与当前时刻最接近的时间段;
在所述选择出的时间段内,删除所述数据库中与所述预设的时间段内接收到的查询指令包含的索引维度不同的索引维度的查询参数与数据之间的索引关系;和/或在所述选择出的时间段内,创建所述数据库中没有的所述预设的时间段内接收到的查询指令包含的索引维度的查询参数与数据之间的索引关系,并添加到所述数据库中。
可选地,所述更新模块803还用于:
若所述选择出的时间段内所述数据库在单位时间内的响应次数大于第二预设次数阈值,则暂停在选择出的时间段内更新;
从所述更新时间段中重新选择出除所述选择出的时间段之外时长最长或者与当前时刻最接近的时间段,以及在重新选择出的时间段内继续进行更新。
可选地,所述查询模块802根据所述针对数据库的查询指令对应的查询参数查询所述数据库中存储的数据,包括:
若所述数据库中的索引维度有针对数据库的查询指令对应的查询参数对应的查询维度,则通过所述索引关系确定所述针对数据库的查询指令对应的查询参数索引的数据;
或者,若所述数据库中的索引维度没有针对数据库的查询指令对应的查询参数对应的查询维度,则通过遍历数据的所有查询参数确定所述针对数据库的查询指令对应的查询参数所关联的数据。
由于该装置即是本申请实施例中的方法中的装置,并且该装置解决问题的原理与该方法相似,因此该装置的实施可以参见方法的实施,重复之处不再赘述。
本申请实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如下步骤:
根据接收到的针对数据库的查询指令确定所述针对数据库的查询指令对应的查询参数;其中,所述数据库包括存储的数据和至少一个索引维度的查询参数之间的索引关系;
根据所述针对数据库的查询指令对应的查询参数查询所述数据库中存储的数据;
该程序被处理器执行时还实现如下步骤:
若预设的时间段内接收到的查询指令包含的索引维度中,有所述数据库中没有的索引维度,则在更新时间段内更新所述索引关系。
可选地,所述索引关系是周期性更新,该程序被处理器执行时还实现如下步骤:
将本周期与上一周期的候选时间段相同的时间段作为本周期的更新时间段,其中所述候选时间段内接收到的所述数据库的响应次数低于第一预设次数阈值。
在一种可选的实施方式中,该程序被处理器执行时还实现如下步骤:
若上一周期的候选时间段中有连续的候选时间段,则将连续的候选时间段组合成一个候选时间段。
可选地,所述更新时间段为多个;
该程序被处理器执行时具体实现:
从多个更新时间段中选择出时长最长或者与当前时刻最接近的时间段;
在所述选择出的时间段内,删除所述数据库中与所述预设的时间段内接收到的查询指令包含的索引维度不同的索引维度的查询参数与数据之间的索引关系;和/或在所述选择出的时间段内,创建所述数据库中没有的所述预设的时间段内接收到的查询指令包含的索引维度的查询参数与数据之间的索引关系,并添加到所述数据库中。
可选地,该程序被处理器执行时还实现如下步骤:
若所述选择出的时间段内所述数据库在单位时间内的响应次数大于第二预设次数阈值,则暂停在选择出的时间段内更新;
从所述更新时间段中重新选择出除所述选择出的时间段之外时长最长或者与当前时刻最接近的时间段,以及在重新选择出的时间段内继续进行更新。
可选地,该程序被处理器执行时还实现如下步骤:
确定所述上一周期内接收到的查询指令包含的各查询维度的数量,并将数量达到预设数量阈值的查询维度作为所述目标索引维度;
或者,确定所述上一周期内接收到的查询指令包含的各查询维度的数量,并将所述各查询维度的数量由大到小进行排序,以及将在预设排位前的查询维度作为所述目标索引维度。
可选地,该程序被处理器执行时具体实现:
若所述数据库中的索引维度有所述查询指令对应的查询参数对应的查询维度,则通过所述索引关系确定所述查询指令对应的查询参数索引的数据;
或者,若所述数据库中的索引维度没有所述查询指令对应的查询参数对应的查询维度,则通过遍历数据的所有查询参数确定所述查询指令对应的查询参数所关联的数据。
以上参照示出根据本申请实施例的方法、装置(系统)和/或计算机程序产品的框图和/或流程图描述本申请。应理解,可以通过计算机程序指令来实现框图和/或流程图示图的一个块以及框图和/或流程图示图的块的组合。可以将这些计算机程序指令提供给通用计算机、专用计算机的处理器和/或其它可编程数据处理装置,以产生机器,使得经由计算机处理器和/或其它可编程数据处理装置执行的指令创建用于实现框图和/或流程图块中所指定的功能/动作的方法。
相应地,还可以用硬件和/或软件(包括固件、驻留软件、微码等)来实施本申请。更进一步地,本申请可以采取计算机可使用或计算机可读存储介质上的计算机程序产品的形式,其具有在介质中实现的计算机可使用或计算机可读程序代码,以由指令执行系统来使用或结合指令执行系统而使用。在本申请上下文中,计算机可使用或计算机可读介质可以是任意介质,其可以包含、存储、通信、传输、或传送程序,以由指令执行系统、装置或设备使用,或结合指令执行系统、装置或设备使用。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (10)
1.一种数据查询方法,其特征在于,包括:
根据接收到的针对数据库的查询指令确定所述针对数据库的查询指令对应的查询参数,其中,所述数据库包括存储的数据和至少一个索引维度的查询参数之间的索引关系;
根据所述针对数据库的查询指令对应的查询参数查询所述数据库中存储的数据;
其中,所述索引关系是通过下列方式更新的:
若预设的时间段内接收到的查询指令包含的索引维度中,有所述数据库中没有的索引维度,则在更新时间段内更新所述索引关系。
2.如权利要求1所述的方法,其特征在于,所述索引关系是周期性更新,通过以下方式确定所述更新时间段:
将本周期与上一周期的候选时间段相同的时间段作为本周期的更新时间段,其中所述候选时间段内接收到的所述数据库的响应次数低于第一预设次数阈值。
3.如权利要求2所述的方法,其特征在于,所述方法还包括:
若上一周期的候选时间段中有连续的候选时间段,则将连续的候选时间段组合成一个候选时间段。
4.如权利要求2或3所述的方法,其特征在于,所述更新时间段为多个;
所述在更新时间段内更新所述索引关系,包括:
从多个更新时间段中选择出时长最长或者与当前时刻最接近的时间段;
在所述选择出的时间段内,删除所述数据库中与所述预设的时间段内接收到的查询指令包含的索引维度不同的索引维度的查询参数与数据之间的索引关系;和/或在所述选择出的时间段内,创建所述数据库中没有的所述预设的时间段内接收到的查询指令包含的索引维度的查询参数与数据之间的索引关系,并添加到所述数据库中。
5.如权利要求4所述的方法,其特征在于,所述方法还包括:
若所述选择出的时间段内所述数据库在单位时间内的响应次数大于第二预设次数阈值,则暂停在选择出的时间段内更新;
从所述更新时间段中重新选择出除所述选择出的时间段之外时长最长或者与当前时刻最接近的时间段,以及在重新选择出的时间段内继续进行更新。
6.如权利要求1~3任一所述的方法,其特征在于,所述根据所述针对数据库的查询指令对应的查询参数查询所述数据库中存储的数据,包括:
若所述数据库中的索引维度有针对数据库的查询指令对应的查询参数对应的查询维度,则通过所述索引关系确定所述针对数据库的查询指令对应的查询参数索引的数据;或
若所述数据库中的索引维度没有针对数据库的查询指令对应的查询参数对应的查询维度,则通过遍历数据的所有查询参数确定所述针对数据库的查询指令对应的查询参数所关联的数据。
7.一种数据查询装置,其特征在于,包括:
确定模块,用于根据接收到的针对数据库的查询指令确定所述针对数据库的查询指令对应的查询参数;其中,所述数据库包括存储的数据和至少一个索引维度的查询参数之间的索引关系;
查询模块,用于根据所述针对数据库的查询指令对应的查询参数查询所述数据库中存储的数据;
更新模块,用于若预设的时间段内接收到的查询指令包含的索引维度中,有所述数据库中没有的索引维度,则在更新时间段内更新所述索引关系。
8.如权利要求7所述的装置,其特征在于,所述索引关系是周期性更新,所述更新模块通过以下方式确定所述更新时间段:
将本周期与上一周期的候选时间段相同的时间段作为本周期的更新时间段,其中所述候选时间段内接收到的所述数据库的响应次数低于第一预设次数阈值。
9.一种终端,其特征在于,包括:处理器和存储器;
其中,所述存储器存储有程序代码,当所述程序代码被所述处理器执行时,使得所述处理器执行如下步骤:
根据接收到的针对数据库的查询指令确定所述针对数据库的查询指令对应的查询参数,其中,所述数据库包括存储的数据和至少一个索引维度的查询参数之间的索引关系;
根据所述针对数据库的查询指令对应的查询参数查询所述数据库中存储的数据;
所述处理器还执行如下步骤:
若预设的时间段内接收到的查询指令包含的索引维度中,有所述数据库中没有的索引维度,则在更新时间段内更新所述索引关系。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如下步骤:
根据接收到的针对数据库的查询指令确定所述针对数据库的查询指令对应的查询参数,其中,所述数据库包括存储的数据和至少一个索引维度的查询参数之间的索引关系;
根据所述针对数据库的查询指令对应的查询参数查询所述数据库中存储的数据;
该程序被处理器执行时还实现如下步骤:
若预设的时间段内接收到的查询指令包含的索引维度中,有所述数据库中没有的索引维度,则在更新时间段内更新所述索引关系。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010694762.1A CN111913959B (zh) | 2020-07-17 | 一种数据查询方法、装置、终端和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010694762.1A CN111913959B (zh) | 2020-07-17 | 一种数据查询方法、装置、终端和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111913959A true CN111913959A (zh) | 2020-11-10 |
CN111913959B CN111913959B (zh) | 2024-06-04 |
Family
ID=
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112597191A (zh) * | 2020-12-29 | 2021-04-02 | 拉卡拉支付股份有限公司 | 数据处理方法、装置、电子设备、存储介质及程序产品 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1308744A (zh) * | 1998-07-03 | 2001-08-15 | 艾利森电话股份有限公司 | 高速缓存服务器网络 |
US20170046370A1 (en) * | 2015-08-12 | 2017-02-16 | International Business Machines Corporation | Data cube generation |
CN106775473A (zh) * | 2016-12-09 | 2017-05-31 | 浙江大华技术股份有限公司 | 一种硬盘的唤醒方法及装置 |
US20180101552A1 (en) * | 2016-10-06 | 2018-04-12 | Sisense, Ltd. | Predictive query execution in analytical databases |
CN110532272A (zh) * | 2019-08-30 | 2019-12-03 | 北京东软望海科技有限公司 | 数据查询方法、装置、电子设备及计算机可读存储介质 |
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1308744A (zh) * | 1998-07-03 | 2001-08-15 | 艾利森电话股份有限公司 | 高速缓存服务器网络 |
US20170046370A1 (en) * | 2015-08-12 | 2017-02-16 | International Business Machines Corporation | Data cube generation |
US20180101552A1 (en) * | 2016-10-06 | 2018-04-12 | Sisense, Ltd. | Predictive query execution in analytical databases |
CN106775473A (zh) * | 2016-12-09 | 2017-05-31 | 浙江大华技术股份有限公司 | 一种硬盘的唤醒方法及装置 |
CN110532272A (zh) * | 2019-08-30 | 2019-12-03 | 北京东软望海科技有限公司 | 数据查询方法、装置、电子设备及计算机可读存储介质 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112597191A (zh) * | 2020-12-29 | 2021-04-02 | 拉卡拉支付股份有限公司 | 数据处理方法、装置、电子设备、存储介质及程序产品 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106557578B (zh) | 历史数据查询方法及系统 | |
CN107423422B (zh) | 基于网格的空间数据分布式存储及检索方法和系统 | |
CN102890722B (zh) | 应用于时序历史数据库的索引方法 | |
CN105975587B (zh) | 一种高性能的内存数据库索引组织与访问方法 | |
US20150317359A1 (en) | Updating statistics in distributed databases | |
CN105069134A (zh) | 一种Oracle统计信息自动收集方法 | |
CN109271435A (zh) | 一种支持断点续传的数据抽取方法及系统 | |
CN110096509A (zh) | 大数据环境下实现历史数据拉链表存储建模处理的系统及方法 | |
WO2012100349A1 (en) | Statistics forecast for range partitioned tables | |
CN110647542B (zh) | 一种数据获取方法和装置 | |
CN110688065A (zh) | 一种存储空间管理方法、系统、电子设备及存储介质 | |
CN114090631A (zh) | 一种数据查询方法、装置、电子设备及存储介质 | |
CN114020713A (zh) | 一种日志结构合并树的文件合并方法、装置、电子设备及存储介质 | |
CN114281819A (zh) | 数据查询方法、装置、设备及存储介质 | |
CN111913959A (zh) | 一种数据查询方法、装置、终端和存储介质 | |
WO2016053302A1 (en) | Processing query of database and data stream | |
CN111913959B (zh) | 一种数据查询方法、装置、终端和存储介质 | |
CN109213760B (zh) | 非关系数据存储的高负载业务存储及检索方法 | |
CN110825732A (zh) | 数据查询方法、装置、计算机设备和可读存储介质 | |
CN113626382B (zh) | 分布式文件系统中聚合对象的索引方法、系统及相关装置 | |
CN112286451B (zh) | 一种适用于多级存储系统的分级调度方法及系统 | |
CN105335475B (zh) | 一种基于流式数据的局部性非聚簇索引方法及系统 | |
CN104809152B (zh) | 一种节约PostgreSQL共享内存的方法及系统 | |
CN112115115A (zh) | 基于数据仓库的文件移动方法、设备和存储介质 | |
CN114880322B (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 |