一种提高数据检索速度的方法技术

技术编号:37715321 阅读:7 留言:0更新日期:2023-06-02 00:10
本发明专利技术属于数据检索技术领域,具体涉及一种提高数据检索速度的方法,包括以下步骤:S1、生成多表模糊查询请求;S2、搭建业务物理视图服务;S3、降维多表模糊查询请求,对业务物理视图进行单表查询;其中,业务物理视图为对同一类业务功能归类为单一物理视图。本发明专利技术通过建立一个业务物理视图服务,实时的创建和更新待查询的业务物理视图,并对业务物理视图进行全文索引,为业务查询提供单物理视图快速模糊查询,使模糊查询不受左右模糊查询的限制,查询效率从几十秒上百秒的查询速度下降到几十毫秒,查询效率极大地提高,大大的提高了用户体验,特别是针对多表联合查询,多字段同时查询更体现出查询的优势。更体现出查询的优势。更体现出查询的优势。

【技术实现步骤摘要】
一种提高数据检索速度的方法


[0001]本专利技术属于数据检索
,具体涉及一种提高数据检索速度的方法。

技术介绍

[0002]在使用MySQL关系型数据库的TMS系统或CRM系统等开发过程中,客户经常需要对某些信息进行模糊查询,例如,小程序的运单列表界面有个查询输入框,需要在这个查询输入框查找包含“21”字符的运单号或手机号或车牌号或地址所对应的所有运单,这种查询通常会涉及到多个业务表:包含运单号的运单表,包含手机号的帐号表,包含车牌号的运单运力表,包含地址信息的货源表等数据表,需要多表联合进行多字段的模糊查询。当各种表数据量比较大的时候,进行这样的查询会非常缓慢,经常因数据查询时间过长引起接口超时,导致功能无法正常使用,同时在高并发情况下查询会导致数据库性能急剧下降。
[0003]为了避免出现上述查询缓慢的情况,目前大部分方法都是利用MySQL特点,为了保证能够利用索引在开发中禁止左模糊查询,只能进行右模糊查询;或者是利用搜索引擎系统,例如ES进行全文搜索。但这两种方法都有弊端,禁止左模糊查询会导致实际场景中不知道开头字符导致无法查询;而ES的全文搜索对于像TMS或CRM系统并非全部字段数据都是纯文本的情况不太适用。
[0004]因此,针对上述技术问题,有必要提供一种提高数据检索速度的方法。

技术实现思路

[0005]本专利技术的目的在于提供一种提高数据检索速度的方法,以解决上述的多表联合模糊查询数据速度慢、效率低的问题。
[0006]为了实现上述目的,本专利技术一实施例提供的技术方案如下:
[0007]一种提高数据检索速度的方法,包括以下步骤:
[0008]S1、生成多表模糊查询请求;
[0009]S2、搭建业务物理视图服务;
[0010]S3、降维多表模糊查询请求,对业务物理视图进行单表查询;
[0011]其中,业务物理视图为对同一类业务功能归类为单一物理视图,存储到业务物理视图中的数据是在存储前先对业务表数据进行业务逻辑处理,用于获得可供直接查询的数据。
[0012]进一步地,所述S2中的业务物理视图服务包括探针服务、Kafka缓存服务和物理视图处理逻辑,所述探针服务用于作为一个MySQL数据库的从库,实时监控主库数据的变化,并将收集到的变化数据发往所述Kafka服务进行缓存,探针服务可以很好的解决业务物理视图数据与业务表数据同步,避免业务表数据变化了,而业务物理视图表数据没有及时更新的问题,同时无需修改原业务系统的逻辑,使业务系统与业务物理视图服务进行解藕,方便开发和扩展;
[0013]所述Kafka缓存服务用于存储通过所述探针服务获取的业务表变化数据,所述
Kafka缓存服务的高吞吐量及高缓存可以保证数据不丢失,作为消费端的物理视图处理逻辑服务如果重启,也不会丢失缓存的数据,重启后可以继续从重启前的消费点继续消费,保证业务表的变化数据能完整提供给物理视图处理逻辑进行处理。
[0014]进一步地,所述物理视图处理逻辑包括以下操作步骤:
[0015]S201、对业务查询结果进行分类,对每一类查询结果建立一个业务物理视图表,用于确定建立业务物理视图表的种类;
[0016]S202、经过业务分类后,确定每张业务物理视图表对应的字段;
[0017]S203、若模糊查询同时包含多个字段的结果,则在业务物理视图表增加一个汇总字段,并存储多个字段的汇总值;
[0018]S204、对业务物理视图的字段及汇总字段分别建立全文索引;
[0019]S205、实时更新业务物理视图数据;
[0020]S206、业务处理逻辑进行数据处理加工;
[0021]S207、加工后的数据通过业务物理视图更新模块保存到业务物理视图表中。
[0022]进一步地,所述S202中的业务物理视图表是在多个业务数据表基础上建立业务物理视图表,是从各业务表根据过滤条件涉及的字段抽离而成,是各业务表的数据项子集。
[0023]进一步地,所述S202中业务物理视图表的设计原则如下:
[0024]S2021、同类业务确定一个主Key,建立一张对应的业务物理视图表;
[0025]S2022、同类业务各过滤条件对应的字段,从对应的业务表抽出对应字段作为业务物理视图表的字段。
[0026]进一步地,所述S204中MySQL默认支持2个字的字段级全文索引,要求在用户查询界面输入至少2个字才能进行查询,如果需要支持单字的模糊查询,则需要修改MySQL里面的配置,以支持单字模糊查询。
[0027]进一步地,因为汇总字段是由多个字段数据合并产生的数据,为了对汇总字段能使用全文索引,必须对汇总字段内容的组成做特殊处理,即所述S204中汇总字段值=字段1值+空格+字段2值+空格+

+空格+字段N值,在各字段值之间添加空格,用于防止在进行汇总字段全文索引时前后两个字段值拼在一起导致查询结果值分属2个字段;
[0028]例如:需要查找车牌号或手机号包含“31”字符的运单,汇总字段里面数据由车牌“粤Bxxxx3”、承运人手机号“132456yyyyy”拼接而成,如果不加空格时汇总字段值为“粤Bxxxx3132456yyyyy”,如果进行查询时会将该数据查出,但实际上它是不符合条件的数据,如果加上空格后,汇总字段值变为“粤Bxxxx3 132456yyyyy”,这样就不会查询出来。
[0029]进一步地,所述S205具体包括以下操作步骤:
[0030]S2051、更新数据调度模块消费Kafka缓存服务缓存的业务表的更新数据;
[0031]S2052、调度程序将更新数据交由对应的业务处理逻辑进行数据处理。
[0032]进一步地,所述S206中的业务处理逻辑是根据与主Key对应的本业务表的数据进行关联,获取业务物理视图中本表对应字段的数据,再按照查询条件对数据进行业务逻辑加工。
[0033]进一步地,所述S206中的数据处理加工模式包括:
[0034]S2061、提取主Key对应业务字段的值即为目标数据,无需进一步加工;
[0035]S2062、提取主Key对应业务字段的值,需要根据业务逻辑的上下文进行运算,得到
目标数据;
[0036]S2063、提取主Key对应多业务表字段值进行汇总拼接,拼接模式按照拼接公式,得到目标数据;
[0037]对数据进行业务逻辑加工是为了在存入业务物理视图表前就生成可供直接查询的数据,像按照上面的汇总字段值处理逻辑,通过数据拼接方式,将多个字段值拼在一起,通过一个字段就可以查询,不用多个字段去分别查询,极大的提高查询速度。
[0038]与现有技术相比,本专利技术具有以下优点:
[0039]本专利技术通过建立一个业务物理视图服务,实时的创建和更新待查询的业务物理视图,并对业务物理视图进行全文索引,为业务查询提供单物理视图快速模糊查询,使模糊查询不受左右模糊查询的限制,查询效率本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种提高数据检索速度的方法,其特征在于,包括以下步骤:S1、生成多表模糊查询请求;S2、搭建业务物理视图服务;S3、降维多表模糊查询请求,对业务物理视图进行单表查询;其中,业务物理视图为对同一类业务功能归类为单一物理视图,存储到业务物理视图中的数据是在存储前先对业务表数据进行业务逻辑处理,用于获得可供直接查询的数据。2.根据权利要求1所述的一种提高数据检索速度的方法,其特征在于,所述S2中的业务物理视图服务包括探针服务、Kafka缓存服务和物理视图处理逻辑,所述探针服务用于作为一个MySQL数据库的从库,实时监控主库数据的变化,并将收集到的变化数据发往所述Kafka服务进行缓存,所述Kafka缓存服务用于存储通过所述探针服务获取的业务表变化数据。3.根据权利要求2所述的一种提高数据检索速度的方法,其特征在于,所述物理视图处理逻辑包括以下操作步骤:S201、对业务查询结果进行分类,对每一类查询结果建立一个业务物理视图表,用于确定建立业务物理视图表的种类;S202、经过业务分类后,确定每张业务物理视图表对应的字段;S203、若模糊查询同时包含多个字段的结果,则在业务物理视图表增加一个汇总字段,并存储多个字段的汇总值;S204、对业务物理视图的字段及汇总字段分别建立全文索引;S205、实时更新业务物理视图数据;S206、业务处理逻辑进行数据加工处理;S207、加工后的数据通过业务物理视图更新模块保存到业务物理视图表中。4.根据权利要求3所述的一种提高数据检索速度的方法,其特征在于,所述S202中的业务物理视图表是在多个业务数据表基础上建立业务物理视图表,是从各业务表根据过滤条件涉及的字段抽离而成,是各业务表的数据项子集。5.根据权利要求3所述的一种提高数据检索速度的方法,其特征在于,所述S202中业务物理视图表...

【专利技术属性】
技术研发人员:王钦才
申请(专利权)人:江苏物润船联网络股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1