CN112084267B - 解决分布式数据库全局广播的方法 - Google Patents
解决分布式数据库全局广播的方法 Download PDFInfo
- Publication number
- CN112084267B CN112084267B CN202010744740.1A CN202010744740A CN112084267B CN 112084267 B CN112084267 B CN 112084267B CN 202010744740 A CN202010744740 A CN 202010744740A CN 112084267 B CN112084267 B CN 112084267B
- Authority
- CN
- China
- Prior art keywords
- binlog
- distributed database
- sql
- distributed
- sql statement
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 13
- 239000012634 fragment Substances 0.000 claims abstract description 8
- 238000012432 intermediate storage Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
Abstract
本发明公开了一种解决分布式数据库全局广播的方法,包括:利用binlog2sql解析MySQL的binlog;将解析binlog得到的主键和需要解决广播的字段进行拼接,生成对应的关键字值;将关键字值写入分布式缓存中;在执行查询sql语句时,判断是否存在相关字段的广播设置,若不存在,则直接执行查询,若存在,则由分布式缓存中获取关键字值,判断对应字段数据对应的分片,并直接将sql语句发送至分片的数据节点中。通过本发明的技术方案,大大提高了MySQL的执行效率,解决了sql全局广播的问题,有效提升了分布式数据库的性能。
Description
技术领域
本发明涉及分布式数据库技术领域,尤其涉及一种解决分布式数据库全局广播的方法。
背景技术
随着电信运营商去0的不断深入,核心crm等系统使用分布式数据库。
在使用分布式数据库的情况下,某些场景下MySQL存在非分片键与分片键不一致的情况,导致sql进行全局广播,在所有后端节点上执行,分布式数据库的压力较大,执行效率较低,分布式数据库的性能无法有效提升。
发明内容
针对上述问题,本发明提供了一种解决分布式数据库全局广播的方法,利用分布式缓存作为中间存储,提供非分片键与分片键的对应关系,在执行sql语句过程中通过分布式缓存中存储的key value,直接将sql语句发送至对应分片的数据节点,大大提高执行效率,解决sql全局广播的问题,有效提升分布式数据库的性能。
为实现上述目的,本发明提供了一种解决分布式数据库全局广播的方法,包括:利用binlog2sql解析MySQL的binlog;将解析binlog得到的主键和需要解决广播的字段进行拼接,生成对应的关键字值;将所述关键字值写入分布式缓存中;在执行查询sql语句时,判断是否存在相关字段的广播设置,若不存在,则直接执行查询,若存在,则由所述分布式缓存中获取所述关键字值,判断对应字段数据对应的分片,并直接将所述sql语句发送至所述分片的数据节点中。
在上述技术方案中,优选地,所述binlog为row模式下记录的binlog。
在上述技术方案中,优选地,所述binlog2sql对所述binlog进行反解析,得到binlog中的delete操作和update操作信息。
与现有技术相比,本发明的有益效果为:利用分布式缓存作为中间存储,提供非分片键与分片键的对应关系,在执行sql语句过程中通过分布式缓存中存储的key value,直接将sql语句发送至对应分片的数据节点,大大提高了执行效率,解决了sql全局广播的问题,有效提升了分布式数据库的性能。
附图说明
图1为本发明一种实施例公开的解决分布式数据库全局广播的方法的流程示意图;
图2为本发明一种实施例公开的解决分布式数据库全局广播的方法的逻辑示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面结合附图对本发明做进一步的详细描述:
如图1和图2所示,根据本发明提供的一种解决分布式数据库全局广播的方法,包括:利用binlog2sql解析MySQL的binlog;将解析binlog得到的主键和需要解决广播的字段进行拼接,生成对应的关键字值;将关键字值写入分布式缓存中;在执行查询sql语句时,判断是否存在相关字段的广播设置,若不存在,则直接执行查询,若存在,则由分布式缓存中获取关键字值,判断对应字段数据对应的分片,并直接将sql语句发送至分片的数据节点中。
在该实施例中,利用分布式缓存作为中间存储,提供非分片键与分片键的对应关系,在执行sql语句过程中通过分布式缓存中存储的key value,直接将sql语句发送至对应分片的数据节点,大大提高了执行效率,解决了sql全局广播的问题,有效提升了分布式数据库的性能。
具体地,binlog,即二进制文件,在sql中为二进制日志文件。利用binlog的解析工具binlog2sql,对MySQL的binlog日志文件进行反解析,从而得到binlog中的delete操作和update操作信息。根据解析得到的主键,与需要解决广播的字段进行拼接后,得到对应的key value(关键字值),该key value能够表达非分片键与分片键之间的对应关系。
在分布式访问层执行查询sql语句时,首先判断是否存在相关字段的广播设置,如果存在,则从分布式缓存中遍历(或查询)以获取该key value,判断应该在哪个分片中执行,分布式访问层将sql语句直接发送至具体的数据节点,不需要进行全局广播即可执行,大大提高了执行效率,从而有效提升分布式数据库的性能。
需要说明的是,binlog为row模式下记录的binlog,row模式为基于行的模式,在row模式下binlog记录的行的完整变化。
以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (1)
1.一种解决分布式数据库全局广播的方法,其特征在于,包括:
利用binlog2sql对MySQL的binlog日志文件进行反解析,得到binlog中的delete操作和update操作信息;
将解析binlog得到的主键和需要解决广播的字段进行拼接,生成对应的关键字值;
将所述关键字值写入分布式缓存中;
在执行查询sql语句时,判断是否存在相关字段的广播设置,若不存在,则直接执行查询,若存在,则由所述分布式缓存中获取所述关键字值,判断对应字段数据对应的分片,并直接将所述sql语句发送至所述分片的数据节点中;
所述binlog为row模式下记录的binlog。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010744740.1A CN112084267B (zh) | 2020-07-29 | 解决分布式数据库全局广播的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010744740.1A CN112084267B (zh) | 2020-07-29 | 解决分布式数据库全局广播的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112084267A CN112084267A (zh) | 2020-12-15 |
CN112084267B true CN112084267B (zh) | 2024-06-07 |
Family
ID=
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106484869A (zh) * | 2016-10-12 | 2017-03-08 | 北京集奥聚合科技有限公司 | 一种基于mysql binlog的分布式缓存方法及系统 |
CN106503257A (zh) * | 2016-11-15 | 2017-03-15 | 北京京东金融科技控股有限公司 | 基于binlog补偿机制的分布式事务服务方法及系统 |
CN106844399A (zh) * | 2015-12-07 | 2017-06-13 | 中兴通讯股份有限公司 | 分布式数据库系统及其自适应方法 |
CN107180081A (zh) * | 2017-04-28 | 2017-09-19 | 广东亿迅科技有限公司 | 海量关系型数据库的调用方法及装置 |
CN107784068A (zh) * | 2017-09-01 | 2018-03-09 | 北京趣拿软件科技有限公司 | 数据变化的获取方法、装置、存储介质、处理器及服务端 |
CN109471861A (zh) * | 2018-11-01 | 2019-03-15 | 南京天辰礼达电子科技有限公司 | 一种基于MySql的数据分布式储存系统 |
CN110647421A (zh) * | 2018-06-27 | 2020-01-03 | 阿里巴巴集团控股有限公司 | 数据库处理方法、装置、系统以及电子设备 |
CN111427963A (zh) * | 2020-04-15 | 2020-07-17 | 赞同科技股份有限公司 | 分布式数据库的数据访问方法及系统 |
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106844399A (zh) * | 2015-12-07 | 2017-06-13 | 中兴通讯股份有限公司 | 分布式数据库系统及其自适应方法 |
CN106484869A (zh) * | 2016-10-12 | 2017-03-08 | 北京集奥聚合科技有限公司 | 一种基于mysql binlog的分布式缓存方法及系统 |
CN106503257A (zh) * | 2016-11-15 | 2017-03-15 | 北京京东金融科技控股有限公司 | 基于binlog补偿机制的分布式事务服务方法及系统 |
CN107180081A (zh) * | 2017-04-28 | 2017-09-19 | 广东亿迅科技有限公司 | 海量关系型数据库的调用方法及装置 |
CN107784068A (zh) * | 2017-09-01 | 2018-03-09 | 北京趣拿软件科技有限公司 | 数据变化的获取方法、装置、存储介质、处理器及服务端 |
CN110647421A (zh) * | 2018-06-27 | 2020-01-03 | 阿里巴巴集团控股有限公司 | 数据库处理方法、装置、系统以及电子设备 |
CN109471861A (zh) * | 2018-11-01 | 2019-03-15 | 南京天辰礼达电子科技有限公司 | 一种基于MySql的数据分布式储存系统 |
CN111427963A (zh) * | 2020-04-15 | 2020-07-17 | 赞同科技股份有限公司 | 分布式数据库的数据访问方法及系统 |
Non-Patent Citations (2)
Title |
---|
Implementation of Distributed XA Transactions in MyCat Based on Table Broadcasting Mechanism;Yingying Wu 等;《2018 IEEE/ACM 5th International Conference on Big Data Computing Applications and Technologies (BDCAT)》;20190110;216-216 * |
面向分布式机器学习的大消息广播设计;辛逸杰 等;《计算机系统应用》;20200115;1-13 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA2562281C (en) | Partial query caching | |
US9405858B2 (en) | On-the-fly encoding method for efficient grouping and aggregation | |
EP3702932A1 (en) | Method, apparatus, device and medium for storing and querying data | |
CN101727465A (zh) | 分布式列存储数据库索引建立、查询方法及装置与系统 | |
CN110413650B (zh) | 一种业务数据的处理方法、装置、设备和存储介质 | |
CN104123288A (zh) | 一种数据查询方法及装置 | |
US9753977B2 (en) | Method and system for managing database | |
CN106407303A (zh) | 数据存储、查询方法及装置 | |
CN109558452B (zh) | 一种查询建表操作的同步方法 | |
CN108694221B (zh) | 数据实时分析方法、模块、设备和装置 | |
CN105677683A (zh) | 批量数据查询方法和装置 | |
CN110597844B (zh) | 异构数据库数据统一访问方法及相关设备 | |
CN109299101B (zh) | 数据检索方法、装置、服务器和存储介质 | |
CN111782703A (zh) | 灌区对象数据间关联关系自动管理和展示的方法及系统 | |
CN109871338B (zh) | 一种数据存储方法、装置及计算机设备 | |
CN112084267B (zh) | 解决分布式数据库全局广播的方法 | |
CN113468571A (zh) | 基于区块链的溯源方法 | |
US10366067B2 (en) | Adaptive index leaf block compression | |
CN111026736A (zh) | 数据血缘管理方法及装置、数据血缘解析方法及装置 | |
CN112084267A (zh) | 解决分布式数据库全局广播的方法 | |
CN105589969A (zh) | 一种数据处理方法及装置 | |
CN114461675A (zh) | 基于kv存储的部分索引实现方法及系统 | |
CN112835905B (zh) | 一种数组类型列的索引方法、装置、设备以及存储介质 | |
CN109657108B (zh) | 一种域名资产数据存储和查询方法和系统 | |
US20150220596A1 (en) | Dynamically adjust duplicate skipping method for increased performance |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant |