[发明专利]一种基于分片存储和折半索引的数据查询引擎有效
申请号: | 201910096153.3 | 申请日: | 2019-01-31 |
公开(公告)号: | CN109840245B | 公开(公告)日: | 2020-12-18 |
发明(设计)人: | 段俊辉;朱永超;张杨杨;徐受天 | 申请(专利权)人: | 中铁工程装备集团有限公司 |
主分类号: | G06F16/13 | 分类号: | G06F16/13;G06F16/14;H04L9/06 |
代理公司: | 郑州优盾知识产权代理有限公司 41125 | 代理人: | 谢萍 |
地址: | 450016 河南省*** | 国省代码: | 河南;41 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 分片 存储 折半 索引 数据 查询 引擎 | ||
本发明公开了一种基于分片存储和折半索引的数据查询引擎,包括数据生成模块、数据排序模块、数据查询模块。本发明将各种明文数据基于GPU运算存放于特定的文件下;并将每个文件内的数据进行动态排序,基于每行明文数据MD5值的21至24位倒序后从小到大排序;最后基于折半索引查询特定MD5加密数据对应的明文数据。本发明首先有效缓解了数据库数据存储压力,仅需要存储明文,而非原始存储方法采用的明文和MD5同时存储的方式;同时基于分片技术提升文件生成以及数据存储的高效性;再者基于折半查询算法大幅提升文件内容快速定位查询速度,充分展现折半查询算法在数据量越多的情况下查询速度越快的优势。
技术领域
本发明涉及一种数据查询引擎,尤其涉及一种基于分片存储和折半索引的数据查询引擎。
背景技术
对于传统数据库查询MD5实现方法包含以下两步:
第一步:建立数据;
1、先在数据库中建立2个表,表名分别为text、MD5;
2、将明文和明文生成的MD5同时入库;
3、建立索引;
第二步:查询数据;
1、先遍历索引;
2、通过关系型数据库匹配MD5获得明文。
此方法同时存储了明文和32位密文,为了便于查询又创建了索引,相比以上只存储明文、通过计算得出索引的方法多占用成倍的空间。同时,对于数据量越大,查询速度也会越来越大,整体效率会大幅下降。
发明内容
针对上述现有技术中描述的不足,本发明提供一种基于分片存储和折半索引的数据查询引擎,能够实现从MD5加密数据到反向明文的快速定位查询。
为解决上述技术问题,本发明所采用的技术方案如下:
一种基于分片存储和折半索引的数据查询引擎,包括数据生成模块、数据排序模块、数据查询模块。
其中,所述数据生成模块,用于将各个MD5加密数据的明文通过分片存放的形式生成于各个文件中,包括MD5加密单元、文件名生成单元和文件夹名生成单元。
所述MD5加密单元,用于对明文数据进行MD5加密。
所述文件名生成单元,将32位MD5加密数据的第9位至第13位的十六进制转化为十进制,作为文件名。
所述文件夹名生成单元,将文件名除以1024去掉余数后作为文件夹名,文件存放于当前文件夹下。
所述数据排序模块,对每个文件夹下的明文数据从小到大依次排序,包括数据排序单元,用于将同一文件下每行明文的MD5值的第21位至第24位进行倒序,并基于倒序结果按从小到大从上到下的顺序依次排序。
所述数据查询模块,基于给定的MD5加密数据进行反向明文查询,并将查询结果输出,包括查询单元,用于从已生成的各个文件中查询对应MD5加密数据的明文进行比对查询。
一种基于分片存储和折半索引的数据查询引擎的查询方法,包括以下步骤:
步骤1、查询一条32位MD5加密数据的明文。
步骤2、将当前明文的MD5值的第9位至第13位转换为十进制,得出文件名。
步骤3、文件名除以1024得到文件夹名,进而得到当前明文对应的文件存放位置。
步骤4、进入找到的文件存放位置,并打开当前文件,定位到当前文件内容的最中间部分,开始进行折半查询。
步骤5、对当前文件的中间位置数据进行MD5加密。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中铁工程装备集团有限公司,未经中铁工程装备集团有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910096153.3/2.html,转载请声明来源钻瓜专利网。