一种基于结构化查询语言的查询数据库的方法和装置制造方法及图纸

技术编号:21628254 阅读:61 留言:0更新日期:2019-07-17 10:52
本发明专利技术公开了一种基于结构化查询语言的查询数据库的方法和装置,涉及计算机技术领域。该方法的一个具体实施方式包括:解析用户提交的查询命令,其中所述查询命令中包括:条件表达式以及所述条件表达式之间的逻辑关系,所述逻辑关系包括“与逻辑关系”和/或“或逻辑关系”;将每个所述条件表达式替换成预设的该条件表达式对应的预定义值的二进制串,将所述二进制串按照所述逻辑关系进行逻辑运算得到运算结果;遍历所述结果的每一位,对每个位的值符合预定义值的位,获取所述表的预定义值对应的数据并组合后返回。该实施方式能够在有限范围内提高数据库查询访问速度,缩短响应时间,改善用户体验。

A Method and Device of Query Database Based on Structured Query Language

【技术实现步骤摘要】
一种基于结构化查询语言的查询数据库的方法和装置
本专利技术涉及计算机
,尤其涉及一种基于结构化查询语言的查询数据库的方法、装置、电子设备和计算机可读介质。
技术介绍
随着大数据技术的广泛应用,对海量数据的分析统计需求日益增加,用户对系统的时效性和数据跨系统分析要求不断提高,传统的关系型数据库的查询处理逐渐无法满足大数据的存储和查询需求,目前主流的大数据框架对数据的查询时效性仍然不高,无法达到对海量数据的秒级响应。针对大数据的存储和查询需求,不同的存储技术都有对应的解决方案,对应MySQL(一种关系型数据库管理系统,使用SQL结构化查询语言进行数据访问),为了提升系统的吞吐量,可以采用分库分表的方式达到目的。HDFS是一种基于Hadoop分布式系统架构的能够运行在通用硬件上的分布式文件系统,数据存储在硬盘上,能提供高吞吐量的数据访问。Presto是一种分布式MySQL查询引擎,它被设计为用来专门进行高速、实时的数据分析,其所有的数据处理都是在内存中进行。在实现本专利技术过程中,专利技术人发现现有技术中至少存在如下问题:目前关系型数据库MySQL难以支撑大规模数据的存储和快速查询功能,对应高吞吐量的HDFS分布式文件存储系统,能实现大数据存储和查询,但其响应时间较长,不能满足实时查询的需求。
技术实现思路
有鉴于此,本专利技术实施例提供一种基于结构化查询语言的查询数据库的方法和装置,能够在有限范围内提高数据库查询访问速度,缩短响应时间,改善用户体验。为实现上述目的,根据本专利技术实施例的一个方面,提供了一种基于结构化查询语言的查询数据库的方法。所述方法包括:解析用户提交的查询命令,其中所述查询命令中包括:条件表达式以及所述条件表达式之间的逻辑关系,所述逻辑关系包括“与逻辑关系”和/或“或逻辑关系”;将每个所述条件表达式替换成预设的该条件表达式对应的预定义值的二进制串,将所述二进制串按照所述逻辑关系进行逻辑运算得到运算结果;遍历所述结果的每一位,对每个位的值符合预定义值的位,获取所述表的预定义值对应的数据并组合后返回。可选地,所述预设的条件表达式的二进制串的位数大于或等于所述表的行数,所述二进制串的位的值对应所述预定义值。可选地,所述预设的条件表达式的二进制串存储于缓存中,所述缓存采用Redis实现。可选地,当数据库被更新时,根据更新的数据库重新产生所述二进制串。为实现上述目的,根据本专利技术实施例的另一个方面,提供了一种基于结构化查询语言的查询数据库的装置,包括:解析模块,用于解析用户提交的查询命令,其中所述查询命令中包括:条件表达式以及所述条件表达式之间的逻辑关系,所述逻辑关系包括“与逻辑关系”和/或“或逻辑关系”;替换模块,用于将每个所述条件表达式替换成预设的该条件表达式对应的预定义值的二进制串,将所述二进制串按照所述逻辑关系进行逻辑运算得到运算结果;查询模块,用于遍历所述结果的每一位,对每个位的值符合预定义值的位,获取所述表的预定义值对应的数据并组合后返回。可选地,其特征在于,所述预设的条件表达式的二进制串的位数大于或等于所述表的行数,所述二进制串的位的值对应所述预定义值。可选地,所述装置还包括:缓存模块,用于储存所述预设的条件表达式的二进制串,所述缓存模块采用Redis实现。可选地,当数据库被更新时,根据更新的数据库重新产生所述二进制串。为实现上述目的,根据本专利技术实施例的再一个方面,提供了一种基于结构化查询语言的查询数据库的电子设备,其特征在于,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现一种基于结构化查询语言的查询数据库的方法。为实现上述目的,根据本专利技术实施例的再一个方面,提供了一种基于结构化查询语言的查询数据库的计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现一种基于结构化查询语言的查询数据库的方法中任一所述的方法。上述专利技术中的一个实施例具有如下优点或有益效果:因为采用将查询命令中的每个条件表达式替换成预设的该条件表达式对应的二进制串,并得到逻辑运算结果,遍历所述结果的每一位,对每个位的值符合预定义值的位,获取所述查询命令中的表的列中对应的数据并返回,所以克服了大数据存储和查询响应时间较长,不能满足实时查询需求的技术问题,进而达到能够在有限范围内提高数据库查询访问速度,缩短响应时间,改善用户体验的技术效果。上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。附图说明附图用于更好地理解本专利技术,不构成对本专利技术的不当限定。其中:图1是根据本专利技术实施例的一种基于结构化查询语言的查询数据库的主要步骤的示意图;图2是根据本专利技术实施例的一种基于结构化查询语言的查询数据库的装置的主要部分的示意图;图3是本专利技术实施例可以应用于其中的示例性系统架构图;图4是适于用来实现本专利技术实施例的终端设备或服务器的计算机系统的结构示意图。具体实施方式以下结合附图对本专利技术的示范性实施例做出说明,其中包括本专利技术实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本专利技术的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。图1是根据本专利技术实施例的根据本专利技术实施例的一种基于结构化查询语言的查询数据库的方法的主要步骤的示意图,如图1所示:步骤S101表示解析用户提交的查询命令,其中所述查询命令中包括:条件表达式以及所述条件表达式之间的逻辑关系,所述逻辑关系包括“与逻辑关系”和/或“或逻辑关系”;此步骤用于提取查询条件,提高访问速度。所述预设的条件表达式的二进制串的位数大于或等于所述表的行数,所述二进制串的位的值对应所述预定义值。当数据库被更新时,根据更新的数据库重新产生所述二进制串。例如,数据库的表具有N行,N是正整数,SQL查询命令中的from部分为查询的表名,select部分为查询的列名,解析查询命令以得到where部分的条件表达式,每个条件表达式的形式是“列名=预定义值”,其中预定义值的范围是可枚举范围;对所述可枚举范围中的每个预定义值,预先产生该预定义值的N位二进制串,其中该二进制串的第N位对应所述表的该列的第N行,当相应列取值为预定义值时,该二进制串中对应的位是1,否则是0。如果二进制串的位数大于N,不与预定义值对应的位的取值可用于作为其他操作的设置。如果该表更新为M(M为正整数)行时,相应的,每个预定义值的二进制串至少也要有M位。例如,有如下数据库表(表1.1),表名为“table”,共有6行数据。表1.1序号姓名年龄城市婚姻状况职业薪水1张三30北京已婚教师120002李丽25上海未婚教师90003李四36广州已婚IT150004马六35上海已婚IT150005王五28广州未婚教师110006陈红22北京未婚IT11000选取列名“城市”、“婚姻状况”和“职业”作为预定义值,其范围是可枚举范围。对于表1.1的示例性例子,列名“城市”的可枚举值范围是{北京、上海、广州};列名“婚姻状况”的可枚举取值范围是{未婚、已婚};列名“职业”的可枚举取值范围是{教师、IT}。对上述可枚举本文档来自技高网...

【技术保护点】
1.一种基于结构化查询语言的查询数据库的方法,其特征在于,包括:解析用户提交的查询命令,其中所述查询命令中包括:条件表达式以及所述条件表达式之间的逻辑关系,所述逻辑关系包括“与逻辑关系”和/或“或逻辑关系”;将每个所述条件表达式替换成预设的该条件表达式对应的预定义值的二进制串,将所述二进制串按照所述逻辑关系进行逻辑运算得到运算结果;遍历所述结果的每一位,对每个位的值符合预定义值的位,获取所述表的预定义值对应的数据并组合后返回。

【技术特征摘要】
1.一种基于结构化查询语言的查询数据库的方法,其特征在于,包括:解析用户提交的查询命令,其中所述查询命令中包括:条件表达式以及所述条件表达式之间的逻辑关系,所述逻辑关系包括“与逻辑关系”和/或“或逻辑关系”;将每个所述条件表达式替换成预设的该条件表达式对应的预定义值的二进制串,将所述二进制串按照所述逻辑关系进行逻辑运算得到运算结果;遍历所述结果的每一位,对每个位的值符合预定义值的位,获取所述表的预定义值对应的数据并组合后返回。2.根据权利要求1所述的方法,其特征在于,所述预设的条件表达式的二进制串的位数大于或等于所述表的行数,所述二进制串的位的值对应所述预定义值。3.根据权利要求1所述的方法,其特征在于,所述预设的条件表达式的二进制串存储于缓存中,所述缓存采用Redis实现。4.根据权利要求2所述的方法,其特征在于,当数据库被更新时,根据更新的数据库重新产生所述二进制串。5.一种基于结构化查询语言的查询数据库的装置,其特征在于,包括:解析模块,用于解析用户提交的查询命令,其中所述查询命令中包括:条件表达式以及所述条件表达式之间的逻辑关系,所述逻辑关系包括“与逻辑关系”和/或“或逻辑...

【专利技术属性】
技术研发人员:王胜徐峰王丹李文科韩贞阳
申请(专利权)人:北京京东尚科信息技术有限公司北京京东世纪贸易有限公司
类型:发明
国别省市:北京,11

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

1