[发明专利]数据库查询方法和服务器无效
| 申请号: | 201410199444.2 | 申请日: | 2014-05-12 |
| 公开(公告)号: | CN103970870A | 公开(公告)日: | 2014-08-06 |
| 发明(设计)人: | 李伟鑫;吴继敏;蔡利元;刘成华 | 申请(专利权)人: | 华为技术有限公司 |
| 主分类号: | G06F17/30 | 分类号: | G06F17/30 |
| 代理公司: | 暂无信息 | 代理人: | 暂无信息 |
| 地址: | 518129 广东*** | 国省代码: | 广东;44 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 数据库 查询 方法 服务器 | ||
技术领域
本发明实施例涉及数据库技术,尤其涉及一种数据库查询方法和服务器。
背景技术
缓存Cache是位于CPU与内存RAM之间的临时存储器,它的容量比内存小但交换速度快。当CPU调用大量数据时,可直接从Cache中调用,从而加快读取速度。通常经常下,Cache分为L1、L2、L3几个级别,L1是单CPU的单核独占使用空间,L2是单CPU的多核共享使用的空间,L3是多个CPU多核共享使用的空间,例如:L1、L2、L3的Cache的大小分别为32K、512K和15360K。以每次读取256Byte为例,3个CACHE的时延分别为:1.2ns、4ns和30ns。而在内存RAM中数据读取需要100ns。相同指令情况下,数据在不同的位置,需要的时间相差数倍或数十倍。虽然各个厂家的芯片不尽相同,但时延相差的倍数基本一致。
列式内存数据库是指数按列组织存储的数据库,每个列的数据独立紧密存放,这种存放组织方式特别适合分析场景下对大量数据的少数列查询,查询时,系统仅读取需要处理的列,而不读入全部数据列。
当前的列式处理是按列分解条件,查询时,每个列单独查询,而后把符合条件的记录行合并求交集,取得最终结果的。例如,SELECT COUNT(*),SUM(v.SALARY)FROM(SELECT AGE,SALARY,CITY,JOB FROM T WHERE AGE>24AND SALARY>5000AND CITY=’SHENZHEN’AND JOB=’SALE’);列式内存数据库执行这个SQL时通常分解为以下几步:
1,扫描AGE列符合AGE>24条件的记录行号集合和数据集;
2,扫描SALARY列符合SALARY>5000条件的记录行号集合和数据集;
3,扫描CITY列符合CITY=’SHENZHEN’条件的记录行号集合和数据集;
4,扫描JOB列符合JOB=’SALE’条件的记录行号集合和数据集;
5,对AGE、SALARY、CITY、JOB的行号集合求交集,得到一个条件都满足的最终行号集合;
6,统计最终的行号集合,扫描中间结果得到COUNT和SUM结果。
以上每个步骤,尤其是扫描列时,会产生大量的行号集合和数据集合这些中间数据,由于Cache的容量有限,可能会导致Cache无法保存这些数据,那就不得不将这些中间数据溢出到RAM中。如果后续对中间数据进一步运算时,则需要将这些中间数据从RAM中取出并计算,那么从RAM读取数据的过程将产生较大时延,如果计算变复杂,时延就会呈倍数增加。
发明内容
本发明实施例提供一种数据库查询方法和服务器,减少了数据库查询过程的时延。
第一方面,本发明提供了一种数据库查询方法,包括:接收查询请求;解析查询请求,获得查询条件;从列式内存数据库中,确定与查询条件相关的目标列;循环执行以下步骤,直到完成所有行的查询:从各个目标列的第m*(i-1)+1行开始,将列式内存数据库中的各个目标列中连续m行的数据或最后少于m行的数据存储到缓存Cache,根据查询条件,查询Cache存储的数据,发送分段查询结果,释放Cache的存储空间,其中m是一个自然常数,i是变量,表示已经循环执行的次数。
结合第一方面,在第一方面的第一种可能的实现方式中,该方法还包括:当查询最后的m行或者少于m行的数据时,在发送的分段查询结果中还包含查询结束标识,以通知请求者本次查询请求已经完成。
结合第一方面的第一种可能,在第一方面的第二种可能的实现方式中,该方法还包括:请求者接收各个分段查询结果后,存储各个分段查询结果,当接收到查询结束标识后,组合各个分段查询结果,并将组合后的查询结果作为最终查询结果。
结合第一方面的第一种可能,在第一方面的第三种可能的实现方式中,当将从列式内存数据库中的目标列某行的数据存储到cache中时,在列式内存数据库中获取到目标列的末行标识或者无法获取到目标列的下一行的地址或者指针时,则生成查询结束标识。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410199444.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:高压箱安装结构
- 下一篇:海量凭证数据直接出具大型企业集团总部财务报表的方法





