本发明专利技术涉及数据库技术领域,具体为一种基于监控系统的MySQL分库分表设计方法包括以下步骤,对应用提供访问接口,提供业务易于识别、通用的SQL连接器;对数据进行拆分、汇总而进行的分库分表表现,按照配置规则定位数据所在位置,执行相对应的SQL尽量小代价的将所需数据返回给客户端;提供多种类型的分库数据库提供数据存储空间;有益效果为:本发明专利技术提出的基于监控系统的MySQL分库分表设计方法及系统根据监控表数据生成规则来分析,数据主要为时间特征类型数据,所以根据表数据分片可以选择日期时间类型数据。由于监控数据有相对应的保存时间,由此可以预估数据量来决定对于表的分片数。数。数。
【技术实现步骤摘要】
一种基于监控系统的MySQL分库分表设计方法及系统
[0001]本专利技术涉及数据库
,具体为一种基于监控系统的MySQL分库分表设计方法及系统。
技术介绍
[0002]传统的将数据集中存储至单一数据节点的解决方案,在性能、可用性和运维成本这三方面已经难于满足互联网的海量数据场景。从性能方面来说,由于关系型数据库大多采用B+树类型的索引,在数据量超过阈值的情况下,索引深度的增加也将使得磁盘访问的IO次数增加,进而导致查询性能的下降;同时,高并发访问请求也使得集中式数据库成为系统的最大瓶颈。
[0003]现有技术中,在传统的关系型数据库无法满足互联网场景需要的情况下,将数据存储至原生支持分布式的NoSQL的尝试越来越多。但NoSQL对SQL的不兼容性以及生态圈的不完善,使得关系型数据库的地位却依然不可撼动。通过分库和分表进行数据的拆分来使得各个表的数据量保持在阈值以下,以及对流量进行疏导应对高访问量,是应对高并发和海量数据系统的有效手段。数据分片的拆分方式又分为垂直分片和水平分片。
[0004]但是,读写分离虽然可以提升系统的吞吐量和可用性,但同时也带来了数据不一致的问题。这包括多个主库之间的数据一致性,以及主库与从库之间的数据一致性的问题。并且,读写分离也带来了与数据分片同样的问题,它同样会使得应用开发和运维人员对数据库的操作和运维变得更加复杂。监控数据日益增长,造成关系型数据库索引层数过高,引起得性能急剧下降问题。
技术实现思路
[0005]本专利技术的目的在于提供一种基于监控系统的MYSQL分库分表设计方法及系统,以解决上述
技术介绍
中提出的问题。
[0006]为实现上述目的,本专利技术提供如下技术方案:一种基于监控系统的MySQL分库分表设计方法,所述基于监控系统的MySQL分库分表设计方法包括以下步骤:
[0007]对应用提供访问接口,提供业务易于识别、通用的SQL连接器;
[0008]对数据进行拆分、汇总而进行的分库分表表现,按照配置规则定位数据所在位置,执行相对应的SQL尽量小代价的将所需数据返回给客户端;
[0009]提供多种类型的分库数据库提供数据存储空间。
[0010]优选的,对数据进行拆分、汇总而进行的分库分表表现时,生成配置文件,所述配置文件包括所述数据库中每个物理表和逻辑表的对应关系。
[0011]优选的,文件包括数据库类型、数据库连接节点信息、主机地址及端口、用户名密码等服务信息;预定义分表规则,例如取余、hash、日期时间等类型,另外可自定义分片规则。
[0012]优选的,执行相对应的SQL尽量小代价的将所需数据返回给客户端时,采用透明化
的数据库代理端,提供封装了数据库二进制协议的服务端版本,用于完成对异构语言的支持;
[0013]提供MySQL和PostgreSQL版本,使用任何兼容MySQL/PostgreSQL协议的访问客户端。
[0014]优选的,执行相对应的SQL尽量小代价的将所需数据返回给客户端时分为三种运行模式:
[0015]内存模式,初始化配置或执行SQL等造成的元数据结果变更的操作,仅在当前进程中生效;
[0016]单机模式,能够将数据源和规则等元数据信息持久化;
[0017]集群模式,提供了多个实例之间的元数据共享和分布式场景下状态协调的能力。
[0018]一种基于监控系统的MYSQL分库分表设计系统,该系统由顶端客户端模块、中间处理层模块以及数据存储层模块构成;
[0019]顶端客户端模块,用于对应用提供访问接口,提供业务易于识别、通用的SQL连接器;
[0020]中间处理层模块,用于对数据进行拆分、汇总而进行的分库分表表现,按照配置规则定位数据所在位置,执行相对应的SQL尽量小代价的将所需数据返回给客户端;
[0021]数据存储层模块,用于提供多种类型的分库数据库提供数据存储空间。
[0022]优选的,所述中间处理层模块中,生成配置文件,所述配置文件包括所述数据库中每个物理表和逻辑表的对应关系。
[0023]优选的,所述中间处理层模块中,文件包括数据库类型、数据库连接节点信息、主机地址及端口、用户名密码等服务信息;预定义分表规则,例如取余、hash、日期时间等类型,另外可自定义分片规则。
[0024]优选的,所述中间处理层模块中,执行相对应的SQL尽量小代价的将所需数据返回给客户端时,采用透明化的数据库代理端,提供封装了数据库二进制协议的服务端版本,用于完成对异构语言的支持;
[0025]提供MySQL和PostgreSQL版本,使用任何兼容MySQL/PostgreSQL协议的访问客户端。
[0026]优选的,所述中间处理层模块分为三种运行模式:
[0027]内存模式,初始化配置或执行SQL等造成的元数据结果变更的操作,仅在当前进程中生效;
[0028]单机模式,能够将数据源和规则等元数据信息持久化。
[0029]与现有技术相比,本专利技术的有益效果是:
[0030]本专利技术提出的基于监控系统的MySQL分库分表设计方法及系统根据监控表数据生成规则来分析,数据主要为时间特征类型数据,所以根据表数据分片可以选择日期时间类型数据。由于监控数据有相对应的保存时间,由此可以预估数据量来决定对于表的分片数。为保证整体系统高可用性,引用MHA来保证后端数据存储层整体高可用,用于后端master发生故障后切换。为保证中间处理层故障,引入keepalived保证处理层高可用性。
附图说明
[0031]图1为本专利技术读写分离示意图;
[0032]图2为本专利技术整体架构图;
[0033]图3为本专利技术实施例三规划系统架构图。
具体实施方式
[0034]为了使本专利技术的目的、技术方案进行清楚、完整地描述,及优点更加清楚明白,以下结合附图对本专利技术实施例进行进一步详细说明。应当理解,此处所描述的具体实施例是本专利技术一部分实施例,而不是全部的实施例,仅仅用以解释本专利技术实施例,并不用于限定本专利技术实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0035]在本专利技术的描述中,需要说明的是,术语“中心”、“中”、“上”、“下”、“左”、“右”、“内”、“外”、“顶”、“底”、“侧”、“竖直”、“水平”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本专利技术和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本专利技术的限制。此外,术语“一”、“第一”、“第二”、“第三”、“第四”、“第五”、“第六”仅用于描述目的,而不能理解为指示或暗示相对重要性。
[0036]在本专利技术的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种基于监控系统的MySQL分库分表设计方法,其特征在于:所述基于监控系统的MYSQL分库分表设计方法包括以下步骤:对应用提供访问接口,提供业务易于识别、通用的SQL连接器;对数据进行拆分、汇总而进行的分库分表表现,按照配置规则定位数据所在位置,执行相对应的SQL尽量小代价的将所需数据返回给客户端;提供多种类型的分库数据库提供数据存储空间。2.根据权利要求1所述的一种基于监控系统的MySQL分库分表设计方法,其特征在于:对数据进行拆分、汇总而进行的分库分表表现时,生成配置文件,所述配置文件包括所述数据库中每个物理表和逻辑表的对应关系。3.根据权利要求2所述的一种基于监控系统的MySQL分库分表设计方法,其特征在于:文件包括数据库类型、数据库连接节点信息、主机地址及端口、用户名密码等服务信息;预定义分表规则,例如取余、hash、日期时间等类型,另外可自定义分片规则。4.根据权利要求3所述的一种基于监控系统的MySQL分库分表设计方法,其特征在于:执行相对应的SQL尽量小代价的将所需数据返回给客户端时,采用透明化的数据库代理端,提供封装了数据库二进制协议的服务端版本,用于完成对异构语言的支持;提供MySQL和PostgreSQL版本,使用任何兼容MySQL/PostgreSQL协议的访问客户端。5.根据权利要求1所述的一种基于监控系统的MySQL分库分表设计方法,其特征在于:执行相对应的SQL尽量小代价的将所需数据返回给客户端时分为三种运行模式:内存模式,初始化配置或执行SQL等造成的元数据结果变更的操作,仅在当前进程中生效;单机模式,能够将数据源和规则等元数据信息持久化;集群模式,提供了多个实例之间的元数据共享和分布式场景下状态协调的能力。6.一种如上述权利要求1
‑...
【专利技术属性】
技术研发人员:姜策,
申请(专利权)人:浪潮云信息技术股份公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。