一种基于Mycat的数据分片及读写分离方法及系统技术方案

技术编号:23431724 阅读:16 留言:0更新日期:2020-02-25 13:07
本发明专利技术公开一种基于Mycat的数据分片及读写分离方法及系统,将mysql的数据按省id值分片存储,Mycat在数据插入时根据该条数据的省id值存储到对应的数据库实现数据的分片;该分片存储区的mysql写数据库与mysql读数据库的数据同步更新,并更新该mysql读数据库在Mycat服务器的映射库表;用户的查询数据请求时,对应分区的mysql读数据库响应该查询数据请求并反馈查询结果。本发明专利技术的插入、读取数据由2台或多台数据库组成,再次提高效率。本发明专利技术实现数据的分片存储、读写分离,解决的单表数据量过大导致查询效率低下甚至查询假死的情况。

A method and system of data partition and read-write separation based on MYCAT

【技术实现步骤摘要】
一种基于Mycat的数据分片及读写分离方法及系统
本专利技术涉及数据库
,尤其涉及一种基于Mycat的数据分片及读写分离方法及系统。
技术介绍
市面上很多的关系型数据库产品,如mysql、oracle、postgresql等,在存储的数据量越来越大的情况下,会出现插入、查询效率低下等情况,该情况由于关系型数据库本身的特点,无法靠它本身解决。例如单独一张表数据量超过上千万条,甚至会出现无法查询的结果。
技术实现思路
本专利技术的目的在于提供一种基于Mycat的数据分片及读写分离方法及系统。本专利技术采用的技术方案是:一种基于Mycat的数据分片及读写分离方法,所采用的系统包括至少一台Mycat服务器和多台mysql服务器,多台mysql服务器共同组成数据分片存储区,每个分片存储区依照以省ID信息为基础的分片规则进行分片,每个分片存储区包括至少一个mysql读数据库和mysql写数据库,同一分片存储区的mysql读数据库和mysql写数据库的数据同步更新;方法包括以下步骤:步骤1,在mycat服务中将mysql的所有数据表的表名配置完整;步骤2,客户上传数据,该数据包括省ID字段信息,并进入Mycat服务器;步骤3,Mycat服务器获取该数据的省ID信息,匹配分片规则;步骤4,Mycat服务器基于分片规则获取对应分区的mysql地址,并将该数据存储至对应的mysql写数据库中;步骤5,该分片存储区的mysql服务器将mysql写数据库与对应的mysql读数据库的数据同步更新;步骤6,Mycat服务器获取用户的查询数据请求并读取所查询数据的省ID信息;步骤7,Mycat服务器根据省ID信息获取对应分片的mysql读数据库地址并转发查询数据请求至该地址;步骤8,对应分片的mysql读数据库响应该查询数据请求并反馈查询结果。进一步地,步骤4或步骤7中获取的对应分片的mysql写数据库地址或者mysql读数据库地址均包括对应数据库的ip、端口、用户名和密码。一种基于Mycat的数据分片及读写分离系统,其包括至少一台Mycat服务器和多台mysql服务器,多台mysql服务器分别连接至Mycat服务器,Mycat服务器作为数据库的中间件mysql数据的读写均经由Mycat服务器,多台mysql服务器分成多个分片存储区,每个分片存储区具有唯一或多个的分片ID,每个分片存储区包括至少一台mysql服务器,每个分片存储区包括至少一个mysql读数据库和mysql写数据库,同一分片存储区的mysql读数据库和mysql写数据库的数据同步更新。进一步地,多台mysql服务器按照省份ID的不同分成多个分片存储区,每条数据均带对应省份ID字段。进一步地,每个省份ID的分片存储区存储带有对应省份ID的数据。进一步地,同一分片存储区的mysql读数据库和mysql写数据库分别配置不同的数据库地址。进一步地,Mycat服务器上设有与各个分片存储区的数据库对应的映射库表,且映射库表的名称与mysql库的表名一致。本专利技术采用以上技术方案,以mysql数据库为准由多台mysql数据库组成本专利技术的环境。实现将mysql的数据按照一定的规则,如各省的id值,进行数据的分片存储,存储在不同的数据库地址中。Mycat要处理的是,设置分片的规则、设置读写规则、设置mycat连接的用户名、密码、配置表结构。以mycat的连接信息为入口(ip、端口、用户名、密码),数据插入的时候根据该条数据的省id值,存储到对应的数据库中,这样就实现了数据的分片,按省id拆分了数据,原先一张数据表数据量可能有8000万,现在单张表可能就几百万。再设置好读写分离,即插入、读取数据由2台或多台数据库组成,再次提高效率。本专利技术实现数据的分片存储、读写分离,解决的单表数据量过大导致查询效率低下甚至查询假死的情况。附图说明以下结合附图和具体实施方式对本专利技术做进一步详细说明;图1为本专利技术一种基于Mycat的数据分片及读写分离方法的流程意图。具体实施方式如图1所示,本专利技术公开了一种基于Mycat的数据分片及读写分离方法,所采用的系统包括至少一台Mycat服务器和多台mysql服务器,多台mysql服务器共同组成数据分片存储区,每个分片存储区依照以省ID信息为基础的分片规则进行分片,每个分片存储区包括至少一个mysql读数据库和mysql写数据库,同一分片存储区的mysql读数据库和mysql写数据库的数据同步更新;方法包括以下步骤:步骤1,在mycat服务中将mysql的所有数据表的表名配置完整;步骤2,客户上传数据,该数据包括省ID字段信息,并进入Mycat服务器;步骤3,Mycat服务器获取该数据的省ID信息,匹配分片规则;步骤4,Mycat服务器基于分片规则获取对应分区的mysql地址,并将该数据存储至对应的mysql写数据库中;步骤5,该分片存储区的mysql服务器将mysql写数据库与对应的mysql读数据库的数据同步更新;步骤6,Mycat服务器获取用户的查询数据请求并读取所查询数据的省ID信息;步骤7,Mycat服务器根据省ID信息获取对应分片的mysql读数据库地址并转发查询数据请求至该地址;步骤8,对应分片的mysql读数据库响应该查询数据请求并反馈查询结果。进一步地,步骤4或步骤7中获取的对应分片的mysql写数据库地址或者mysql读数据库地址均包括对应数据库的ip、端口、用户名和密码。一种基于Mycat的数据分片及读写分离系统,其包括至少一台Mycat服务器和多台mysql服务器,多台mysql服务器分别连接至Mycat服务器,Mycat服务器作为数据库的中间件mysql数据的读写均经由Mycat服务器,多台mysql服务器分成多个分片存储区,每个分片存储区具有唯一或多个的分片ID,每个分片存储区包括至少一台mysql服务器,每个分片存储区包括至少一个mysql读数据库和mysql写数据库,同一分片存储区的mysql读数据库和mysql写数据库的数据同步更新。具体的,本专利技术根据项目需要配置多台mysql服务器;Mycat服务器需要分别设置mycat的数据分片规则(省id),mycat的读写分离规则(插入、查询由不同数据库地址组成),mycat的连接方式(ip、端口、用户名、密码),设置mycat的表名称并保持该名称与mysql库的表名需一致;启动mycat服务并连接mycat服务后,数据的新增会根据分片规则(省id),存储到不同的mysql服务器。查询数据和新增数据访问不同的数据库地址,提高效率。进一步地,多台mysql服务器按照省份ID的不同分成多个分片存储区,每条数据均带对应省份ID字段。进一步地,每个省份ID的分片存储区存储带有对应省份ID的数据。进一步地,同一分片存储区的mysql读数据本文档来自技高网...

【技术保护点】
1.一种基于Mycat的数据分片及读写分离方法,其特征在于:所采用的系统包括至少一台Mycat服务器和多台mysql服务器,多台mysql服务器共同组成数据分片存储区,每个分片存储区依照以省ID信息为基础的分片规则进行分片,每个分片存储区包括至少一个mysql读数据库和mysql写数据库,同一分片存储区的mysql读数据库和mysql写数据库的数据同步更新;方法包括以下步骤:/n步骤1, 在mycat服务中将mysql的所有数据表的表名配置完整;/n步骤2,客户上传数据,该数据包括省ID字段信息,并进入Mycat服务器;/n步骤3,Mycat服务器获取该数据的省ID信息,匹配分片规则;/n步骤4,Mycat服务器基于分片规则获取对应分区的mysql地址,并将该数据存储至对应的mysql写数据库中;/n步骤5,该分片存储区的mysql服务器将mysql写数据库与对应的mysql读数据库的数据同步更新;/n步骤6,Mycat服务器获取用户的查询数据请求并读取所查询数据的省ID信息;/n步骤7,Mycat服务器根据省ID信息获取对应分片的mysql读数据库地址并转发查询数据请求至该地址;/n步骤8,对应分片的mysql读数据库响应该查询数据请求并反馈查询结果。/n...

【技术特征摘要】
1.一种基于Mycat的数据分片及读写分离方法,其特征在于:所采用的系统包括至少一台Mycat服务器和多台mysql服务器,多台mysql服务器共同组成数据分片存储区,每个分片存储区依照以省ID信息为基础的分片规则进行分片,每个分片存储区包括至少一个mysql读数据库和mysql写数据库,同一分片存储区的mysql读数据库和mysql写数据库的数据同步更新;方法包括以下步骤:
步骤1,在mycat服务中将mysql的所有数据表的表名配置完整;
步骤2,客户上传数据,该数据包括省ID字段信息,并进入Mycat服务器;
步骤3,Mycat服务器获取该数据的省ID信息,匹配分片规则;
步骤4,Mycat服务器基于分片规则获取对应分区的mysql地址,并将该数据存储至对应的mysql写数据库中;
步骤5,该分片存储区的mysql服务器将mysql写数据库与对应的mysql读数据库的数据同步更新;
步骤6,Mycat服务器获取用户的查询数据请求并读取所查询数据的省ID信息;
步骤7,Mycat服务器根据省ID信息获取对应分片的mysql读数据库地址并转发查询数据请求至该地址;
步骤8,对应分片的mysql读数据库响应该查询数据请求并反馈查询结果。


2.根据权利要求1所述的一种基于Mycat的数据分片及读写分离方法,其特征在于:步骤4或步骤7中获取的对应分片的mysql写数据库地址或者mysql读数据库地址均包括对应数...

【专利技术属性】
技术研发人员:张章松郑仁海马杰
申请(专利权)人:中电福富信息科技有限公司
类型:发明
国别省市:福建;35

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

1