[发明专利]数据查询方法、装置在审
申请号: | 202110067904.6 | 申请日: | 2021-01-19 |
公开(公告)号: | CN112765215A | 公开(公告)日: | 2021-05-07 |
发明(设计)人: | 郭鑫伟;赵茂兰;牛福振;李毅 | 申请(专利权)人: | 上海幻电信息科技有限公司 |
主分类号: | G06F16/2455 | 分类号: | G06F16/2455;G06F16/23;G06F16/21;G06F16/28 |
代理公司: | 北京英特普罗知识产权代理有限公司 11015 | 代理人: | 邓小玲;王勇 |
地址: | 200120 上海市浦东新区中国(上海)*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 数据 查询 方法 装置 | ||
本申请公开了一种数据查询方法、装置。该方法包括:分析基于客户端触发的数据查询请求生成的查询语句,以从所述查询语句中获取参数信息;获取与所述数据表名相对应的数据表的版本信息;采用预设的算法对所述参数信息及所述版本信息进行处理,以生成缓存键名;从预设的第一数据库中查找是否存在与所述缓存键名匹配的缓存文件;若不存在与所述缓存键名匹配的缓存文件,则根据所述查询语句对预设的第二数据库进行查询,以获取数据库查询结果;将所述数据库查询结果生成脚本型文件缓存;对所述脚本型文件缓存进行预编译生成第一字节码,并将所述第一字节码作为所述数据查询请求对应的响应数据。本申请可以提高数据查询效率。
技术领域
本申请涉及数据处理技术领域,尤其涉及一种数据查询方法、装置。
背景技术
关系型数据库会存储一类惰性数据,即查询频率大于修改频率的数据。为提升查询效率, 减轻数据库压力,通常会将此类惰性数据的查询结果转化成键值文件缓存。
传统生成键值文件缓存方法中,会分为文本型文件缓存和脚本型文件缓存两种类型。其 中,文本型文件缓存在读取和写入时需要进行序列化和反序列化,因而会降低缓存读取解析 的效率。脚本型文件缓存无需序列化,并会被PHP的Opcache技术预编译成字节码存储在 内存里。
然而,发明人发现,通过存储为脚本型文件缓存的方式虽然可以进一步提升读取效率, 但当缓存内容发生修改时,只能通过重启PHP服务或等待Opcache的刷新来触发字节码的 更新。而通过重启PHP服务的方式实现字节码的更新会导致用户请求中断,影响数据查询 效率,通过等待Opcache的刷新的方式实现字节码的更新无法实时被触发,导致字节码不能 及时被更新,也会影响数据查询效率。
发明内容
有鉴于此,现提供一种数据查询方法、装置、计算机设备及计算机可读存储介质,以解 决现有技术中需要通过重启PHP服务或等待Opcache的刷新的方式来获取到更新的字节码, 影响数据查询效率的问题。
本申请提供了一种数据查询方法,包括:
分析基于数据查询请求生成的查询语句,以从所述查询语句中获取参数信息,所述参数 信息至少包括数据表名;
获取与所述数据表名相对应的数据表的版本信息;
采用预设的算法对所述参数信息及所述版本信息进行处理,以生成缓存键名;
从预设的第一数据库中查找是否存在与所述缓存键名匹配的缓存文件;
若所述第一数据库中不存在与所述缓存键名匹配的缓存文件,则根据所述查询语句对预 设的第二数据库进行查询,以获取数据库查询结果;
将所述数据库查询结果生成脚本型文件缓存,其中,所述脚本型文件缓存以所述缓存键 名作为key名,所述数据库查询结果作为value值;
对所述脚本型文件缓存进行预编译生成第一字节码,并将所述第一字节码作为所述数据 查询请求对应的响应数据。
可选地,所述方法还包括:
若所述第一数据库中存在与所述缓存键名匹配的缓存文件,则从内存中获取对所述缓存 文件进行预编译生成的第二字节码,并将所述第二字节码作为所述数据查询请求对应的响应 数据。
可选地,所述若所述第一数据库中不存在与所述缓存键名匹配的缓存文件,则根据所述 查询语句对预设的第二数据库进行查询,以获取数据库查询结果包括:
若所述第一数据库中不存在与所述缓存键名匹配的缓存文件,则执行预设的命令以获取 分布式锁;
若成功获取到所述分布式锁,则执行根据所述查询语句对预设的第二数据库进行查询, 以获取数据库查询结果的步骤。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海幻电信息科技有限公司,未经上海幻电信息科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110067904.6/2.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置