基于主从数据库的数据查询方法、装置、设备及存储介质制造方法及图纸

技术编号:32006351 阅读:18 留言:0更新日期:2022-01-22 18:22
本发明专利技术提供了基于主从数据库的数据查询方法、装置、设备及存储介质,该方法包括:接收服务器发送的查询请求;根据查询请求,确定待查询表名;自映射表中查找待查询表名的最大第一标识差值,映射表储存主数据库数据更新时提交至日志中的表名和第一标识差值,第一标识差值用于标识主数据库的数据更新操作,表名为主数据库的数据更新操作中所操作的表名;查找待查询表名在从数据库的日志中,最新一次数据更新操作对应的第二标识差值;根据第二标识差值以及最大第一标识差值的大小,确定查询请求的目标数据库。本发明专利技术避免由于数据同步时间差导致数据获取存在误差的情况。致数据获取存在误差的情况。致数据获取存在误差的情况。

【技术实现步骤摘要】
基于主从数据库的数据查询方法、装置、设备及存储介质


[0001]本专利技术涉及计算机数据同步领域,具体地说,涉及基于主从数据库的 数据查询方法、装置、设备及存储介质。

技术介绍

[0002]数据主从复制时难免会有时间差:主库一边写入数据,从库一边监听 并复制主库的数据,从严格意义上讲,是一种异步操作
[0003]当一次性写入大批量数据时由于一些网络带宽的瓶颈等因素容易造 成数据积压:主库写入大批量数据时可能会由于执行时间长,从库持续监 听并复制数据,从库数据同步时可能会产生不可忽略的时间差。具体而言, 当采用数据库主从访问的架构模式时,在大批量执行主库数据更新时,从 库事务执行完毕,返回前端执行成功的消息,但因为数据主从库服务器的 网络带宽等原因,导致当前端发起查询数据的请求时,从库可能还没有完 全复制完主库的数据,从而查询出的并不是完整的结果。主从同步实质是 从库监听主库binlog日志文件的增量变化,复制增量到从库的binlog中 从而达到改变从库数据使其达到和主库数据一致的效果。
[0004]由此,如何避免由于数据同步时间差导致数据获取存在误差的情况, 是本领域技术人员亟待解决的技术问题。
[0005]需要说明的是,上述
技术介绍
部分公开的信息仅用于加强对本专利技术的 背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术 的信息。

技术实现思路

[0006]针对现有技术中的问题,本专利技术的目的在于提供基于主从数据库的数 据查询方法、装置、设备及存储介质,克服了现有技术的困难,避免由于 数据同步时间差导致数据获取存在误差的情况。
[0007]本专利技术的实施例提供一种基于主从数据库的数据查询方法,包括:
[0008]接收服务器发送的查询请求;
[0009]根据所述查询请求,确定待查询表名;
[0010]自映射表中查找待查询表名的最大第一标识差值,所述映射表储存主 数据库数据更新时提交至日志中的表名和第一标识差值,所述第一标识差 值用于标识主数据库的数据更新操作,所述第一标识差值随所述主数据库 的数据更新操作的增加而增加,所述表名为所述主数据库的数据更新操作 中所操作的表名;
[0011]查找待查询表名在从数据库的日志中,最新一次数据更新操作对应的 第二标识差值,所述第二标识差值随所述从数据库的数据更新操作的增加 而增加;
[0012]根据所述第二标识差值以及所述最大第一标识差值的大小,自所述主 数据库和所述从数据库中确定所述查询请求的目标数据库。
[0013]在本专利技术的一些实施例中,所述映射表通过如下步骤储存主数据库数 据更新时
提交至日志中的表名和第一标识差值:
[0014]接收所述主数据库完成所述服务器的数据更新请求时,向服务器返回 的数据更新反馈信息;
[0015]响应于所述数据更新反馈信息,自所述主数据库的日志中,获取本次 数据更新操作提交的表名和第一标识差值;
[0016]储存所获取的表名和第一标识差值。
[0017]在本专利技术的一些实施例中,所述从数据库的数量为多个,所述根据所 述第二标识差值以及所述最大第一标识差值的大小,自所述主数据库和所 述从数据库中确定所述查询请求的目标数据库包括:
[0018]根据所述第二标识差值以及所述最大第一标识差值的大小,确定各所 述从数据库是否完成所述待查询表名的同步更新;
[0019]根据完成所述待查询表名的同步更新的从数据库的数量,自所述主数 据库和所述从数据库中确定所述查询请求的目标数据库,
[0020]其中,当所述从数据库的第二标识差值大于等于所述最大第一标识差 值时,该从数据库完成所述待查询表名的同步更新。
[0021]在本专利技术的一些实施例中,所述根据完成所述待查询表名的同步更新 的从数据库的数量,自所述主数据库和所述从数据库中确定所述查询请求 的目标数据库包括:
[0022]响应于完成所述待查询表名的同步更新的从数据库的数量为所述从 数据库的总量,根据负载均衡算法,自多个所述从数据库中选择目标数据 库。
[0023]在本专利技术的一些实施例中,所述根据完成所述待查询表名的同步更新 的从数据库的数量,自所述主数据库和所述从数据库中确定所述查询请求 的目标数据库包括:
[0024]响应于完成所述待查询表名的同步更新的从数据库的数量小于所述 从数据库的总量且大于零,根据负载均衡算法,自多个完成所述待查询表 名的同步更新的从数据库中选择目标数据库。
[0025]在本专利技术的一些实施例中,所述根据完成所述待查询表名的同步更新 的从数据库的数量,自所述主数据库和所述从数据库中确定所述查询请求 的目标数据库包括:
[0026]响应于完成所述待查询表名的同步更新的从数据库的数量为零,将所 述主数据库确定为目标数据库。
[0027]在本专利技术的一些实施例中,所述根据所述第二标识差值以及所述最大 第一标识差值的大小,自所述主数据库和所述从数据库中确定所述查询请 求的目标数据库还包括:
[0028]响应于完成所述待查询表名的同步更新的从数据库的数量为所述从 数据库的总量,自所述映射表中删除含有所述待查询表名,且第一标识差 值小于等于所述最大第一标识差值的数据记录,
[0029]其中,当未在所述映射表中查询到所述待查询表名时,指示完成所述 待查询表名的同步更新的从数据库的数量为所述从数据库的总量。
[0030]根据本专利技术的又一方面,还提供一种基于主从数据库的数据查询装 置,包括:
[0031]接收模块,配置成接收服务器发送的查询请求;
[0032]第一确定模块,配置成根据所述查询请求,确定待查询表名;
[0033]第一查找模块,配置成自映射表中查找待查询表名的最大第一标识差 值,所述映
射表储存主数据库数据更新时提交至日志中的表名和第一标识 差值,所述第一标识差值用于标识主数据库的数据更新操作,所述第一标 识差值随所述主数据库的数据更新操作的增加而增加,所述表名为所述主 数据库的数据更新操作中所操作的表名;
[0034]第二查找模块,配置成查找待查询表名在从数据库的日志中,最新一 次数据更新操作对应的第二标识差值,所述第二标识差值随所述从数据库 的数据更新操作的增加而增加;
[0035]第二确定模块,配置成根据所述第二标识差值以及所述最大第一标识 差值的大小,自所述主数据库和所述从数据库中确定所述查询请求的目标 数据库。
[0036]根据本专利技术的又一方面,还提供一种基于主从数据库的数据查询处理 设备,包括:
[0037]处理器;
[0038]存储器,其中存储有所述处理器的可执行指令;
[0039]其中,所述处理器配置为经由执行所述可执行指令来执行如上所述基 于主从数据库的数据查询方法的步骤。
[0040]本专利技术的实施例还提供一种计算机可读存储介质,用于存储程序,所 述程序被执行时实现上述基于主从数据库的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于主从数据库的数据查询方法,其特征在于,包括:接收服务器发送的查询请求;根据所述查询请求,确定待查询表名;自映射表中查找待查询表名的最大第一标识差值,所述映射表储存主数据库数据更新时提交至日志中的表名和第一标识差值,所述第一标识差值用于标识主数据库的数据更新操作,所述第一标识差值随所述主数据库的数据更新操作的增加而增加,所述表名为所述主数据库的数据更新操作中所操作的表名;查找待查询表名在从数据库的日志中,最新一次数据更新操作对应的第二标识差值,所述第二标识差值随所述从数据库的数据更新操作的增加而增加;根据所述第二标识差值以及所述最大第一标识差值的大小,自所述主数据库和所述从数据库中确定所述查询请求的目标数据库。2.根据权利要求1所述的基于主从数据库的数据查询方法,其特征在于,所述映射表通过如下步骤储存主数据库数据更新时提交至日志中的表名和第一标识差值:接收所述主数据库完成所述服务器的数据更新请求时,向服务器返回的数据更新反馈信息;响应于所述数据更新反馈信息,自所述主数据库的日志中,获取本次数据更新操作提交的表名和第一标识差值;储存所获取的表名和第一标识差值。3.根据权利要求1所述的基于主从数据库的数据查询方法,其特征在于,所述从数据库的数量为多个,所述根据所述第二标识差值以及所述最大第一标识差值的大小,自所述主数据库和所述从数据库中确定所述查询请求的目标数据库包括:根据所述第二标识差值以及所述最大第一标识差值的大小,确定各所述从数据库是否完成所述待查询表名的同步更新;根据完成所述待查询表名的同步更新的从数据库的数量,自所述主数据库和所述从数据库中确定所述查询请求的目标数据库,其中,当所述从数据库的第二标识差值大于等于所述最大第一标识差值时,该从数据库完成所述待查询表名的同步更新。4.根据权利要求3所述的基于主从数据库的数据查询方法,其特征在于,所述根据完成所述待查询表名的同步更新的从数据库的数量,自所述主数据库和所述从数据库中确定所述查询请求的目标数据库包括:响应于完成所述待查询表名的同步更新的从数据库的数量为所述从数据库的总量,根据负载均衡算法,自多个所述从数据库中选择目标数据库。5.根据权利要求3所述的基于主从数据库的数据查询方法,其特征在于,所述根据完成所述待查询表名的同步更新的从数据库的数量,自所述主数据库和所述从数据库中确定所述查询请求的目标数据库包括:响应...

【专利技术属性】
技术研发人员:韩硕谢萍
申请(专利权)人:中国电信股份有限公司
类型:发明
国别省市:

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

1