一种面向虚拟资产数据的查询优化方法技术

技术编号:14056227 阅读:83 留言:0更新日期:2016-11-27 01:33
本发明专利技术公开了一种面向虚拟资产数据的查询优化方法,包括以下步骤:首先查询语义缓存,如果包含所查询的信息,则直接返回得出结果;否则对查询进行分类,对于无指定列查询,则进行查询倒排索引,如果包含所查询的信息,则直接得出查询结果,否则进行节点索引查询;而对于指定列查询,则直接进行节点查询;如果节点索引结果包含空闲节点,跳转到相应节点,按顺序查询总数据库,得出相应结果,否则循环执行节点索引查询,直至找出空闲结点进而得出相应结果;本发明专利技术申请综合考虑了语义缓存、倒排索引和节点索引的查询优化方法,将此查询优化方法应用到虚拟资产海量信息的查询当中,可以大大降低查询的时间,提高了查询效率。

【技术实现步骤摘要】

本技术属于网络与信息安全领域,涉及一种面向虚拟资产数据的查询优化方法
技术介绍
随着信息科学技术日新月异地发展,特别是互联网的迅猛发展为虚拟资产的产生及交易提供了广阔的平台,促进了网络交易的繁荣发展,与此同时,也产生了海量的虚拟资产数据。如何快速查询到有效信息成为了一个巨大的挑战,因此,对海量数据库的查询优化工作势在必行。基于此,文献[1]对XQuery/Update中的Transform查询处理进行了详细讨论,它的核心思想是基于XQuery的导航式处理技术。通过构建自动机,根据当前遇到的结点,执行自动机上的相关操作。文献[2]提出了一种基于遗传算法的数据库查询优化方法,它是基于查询数据关联度之间的关系进行查询的,继承了遗传算法寻优能力强的优点。文献[3]提出了一种分布式语义缓存覆盖技术(DiSCO),它可以解决基于定位系统(LBS)后端数据的负载瓶颈,同时提升LBS的整体性。然而,第一种方法中一次只能处理一个结点,并不适用于基于代数的查询处理,查询效率较差。第二种方法使用的遗传算法,对于不同问题需要设置不同的遗传算子,所以存在局部搜索能力差等不足。第三种方法没有考虑后端数据的更新,这可能导致缓存数据与后端数据的不一致,从而导致查询结果准确度较低。[1]Fan W,Cong G,Bohannon P.Querying XML with update syntax[C]//Proceedings of the 2007ACM SIGMOD international conference on Management of data.ACM,2007:293-304.[2]Kumar T V V,Singh V,Verma A K.Distributed query processing plans generation using genetic algorithm[J].International Journal of Computer Theory and Engineering,2011,3(1):38-45.[3]Lubbe C,Brodt A,Cipriani N,et al.DiSCO:A Distributed Semantic Cache Overlay for Location-based Services[C]//Mobile Data Management(MDM),201112th IEEE International Conference on.IEEE,2011,1:17-26.
技术实现思路
针对上述技术问题,本专利技术提出一种面向虚拟资产数据的查询优化方法,该方法从语义缓存、倒排索引和节点索引三个方面实现查询优化,适用于海量虚拟资产信息数据的查询优化。所述语义缓存,是指将用户向服务器端提交的查询语句和查询实际得到的结果数据统一存储在指定的缓存中,因而其不仅包含有数据,还有对数据的相关描述信息,从而可以提高查询效率。所述倒排索引,是根据属性的值来查找记录。这种索引中的每一项都包括一个属性值和具有该属性值的各记录的主键,在虚拟资产数据库中则是唯一标识及其平台。根据日志、受欢迎程度、访问频率等系数来挑选出热门、中心词汇,将这些词汇单独抽取出来建立一个倒排索引结构。所述节点索引,是指虚拟资产分布式数据库中,存在相同数据的多个副本,它们在不同的虚拟节点上,存储在不同的物理节点上。把具有相同唯一标识的
数据放到一起组成数据块,以数据块为单位考虑副本,建立一个节点索引记录各个数据块所存储的节点以及节点的忙闲情况。根据忙闲情况,调整储存节点,此外,当使用者访问某个机器节点,修改了某一用户的信息,可以通过节点索引来迅速查找相关节点,实行写同步。本专利技术技术方案具体包括以下步骤:1、首先查询语义缓存,如果包含所查询的信息,则直接执行第6步,否则执行第2步;2、对查询进行分类,如果是无指定列查询(知道某一属性值或者值的一部分而不知其属性,查询用户信息),则执行第3步,否则执行第4步;3、查询倒排索引(包含属性值,唯一标识,平台,属性),如果包含所查询的信息,则直接得出查询结果,否则执行第4步;4、查询节点索引(包含唯一标识,节点地址,忙闲情况),如果包含空闲节点,跳转到相应节点,执行第5步,否则循环执行第4步;5、顺序查询总数据库,得到相应结果,执行第6步;6、返回所得到的结果。本专利技术开发环境是在Linux操作系统的X86平台,JDK1.7基础上,安装Cassandra 1.0或更高版本的数据库软件为系统提供数据支持,主要采用java语言编写。本专利技术要求服务器运行于安装有Linux操作系统的X86平台,JDK1.7或以上版本且具有多个机器节点的计算机环境。与现有技术相比,本专利技术结合语义缓存、倒排索引和节点索引进行查询优化,将此方法应用到虚拟资产海量信息的查询当中,可以大大降低查询时间,提高查询效率。附图说明图1为整体分布逻辑图图2为实施例虚拟资产数据库中查找“非凡”的实例图3为Cassandra数据库顺序查询过程具体实施方式下面通过具体实施方式来进一步说明本专利技术的技术方案:本专利技术提供一种面向虚拟资产数据的查询优化方法,该方法从语义缓存、倒排索引和节点索引三个方面实现查询优化,整体设计如图1所示。1、语义缓存虚拟资产数据规模庞大,从而导致索引文件也呈大规模特性,大规模索引文件在一定程度上将影响查询效率,但虚拟资产数据挖掘应用往往具有特殊针对性的挖掘对象(热点),挖掘对象数据仅仅为虚拟资产数据的小部分。针对挖掘对象的上下文信息和查询的局部性,面向虚拟资产关联查询的语义缓存技术可以很好地支持虚拟资产的快速关联查询。为了便于讨论,对以下概念进行定义:定义1(关系包含):如果集合A中存在关系f,它涉及n个元素(a1…an),则任意其中一个元素ai就被集合A关系包含,即集合A关系包含ai,表示为A○ai。定义2(集合相交):集合A与集合B,如果A中的存在元素I或者关系包含i,B中也存在I或者关系包含i,则称集合A与集合B相交,表示为A×B。定义3(比较包含与比较子集):如果有两个比较关系fa和fb:若fa中条件x>c,fb中条件x>d,而且c<d,则fa包含fb,fb是fa的子集,
表示为fb∈fa;若fa中条件x<c,fb中条件x<d,而且c>d,则fa包含fb,fb是fa的子集,表示为fb∈fa。(1)匹配分类及处理方式不论哪种数据库,只要是查询,在逻辑上都可以用SQL语言中的select,from,where,order by,group by五种语句来理解,排序是可以在得到结果集之后再进行的,所以我们将语义缓存项表示为P=<S,F,W,O,G,C>六项,其中select子句记作集合S可分为两部分,一部分是简单集合S1,它只包含简单的属性。另一部分是S2,它是由函数组成的复杂集合,from子句中的关系集合记为F;where子句的条件谓词记为W;group by子句的分组属性集合为G;order by子句的排列集合为O;查询的结果记为C。对于一个新来的查询Q要转化为Q=<SQ,FQ,WQ,OQ,GQ,CQ>本文档来自技高网
...
一种面向虚拟资产数据的查询优化方法

【技术保护点】
一种面向虚拟资产数据的查询优化方法,其特征在于,所述优化方法是从语义缓存、倒排索引和节点索引三个方面实现查询优化,包括以下步骤:步骤一、首先查询语义缓存,若包含所查询的信息,则直接执行步骤六,否则执行步骤二;步骤二、对查询进行分类,对于无指定列查询,则执行步骤三,否则执行步骤四;步骤三、查询倒排索引,如果包含所查询的信息,则直接得出查询结果,否则执行步骤四;步骤四、查询节点索引,如果包含空闲节点,跳转到相应节点,执行步骤五,否则循环执行步骤四;步骤五、顺序查询总数据库,得到相应结果,执行步骤六;步骤六、返回所得到的结果。

【技术特征摘要】
1.一种面向虚拟资产数据的查询优化方法,其特征在于,所述优化方法是从语义缓存、倒排索引和节点索引三个方面实现查询优化,包括以下步骤:步骤一、首先查询语义缓存,若包含所查询的信息,则直接执行步骤六,否则执行步骤二;步骤二、对查询进行分类,对于无指定列查询,则执行步骤三,否则执行步骤四;步骤三、查询倒排索引,如果包含所查询的信息,则直接得出查询结果,否则执行步骤四;步骤四、查询节点索引,如果包含空闲节点,跳转到相应节点,执行步骤五,否则循环执行...

【专利技术属性】
技术研发人员:邓璐贾焰韩伟红李树栋李虎全拥
申请(专利权)人:中国人民解放军国防科学技术大学
类型:发明
国别省市:湖南;43

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

1