CN110837506A - 一种基于Mycat的数据分片及读写分离方法及系统 - Google Patents

一种基于Mycat的数据分片及读写分离方法及系统 Download PDF

Info

Publication number
CN110837506A
CN110837506A CN201911081036.6A CN201911081036A CN110837506A CN 110837506 A CN110837506 A CN 110837506A CN 201911081036 A CN201911081036 A CN 201911081036A CN 110837506 A CN110837506 A CN 110837506A
Authority
CN
China
Prior art keywords
mysql
data
mycat
database
read
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.)
Pending
Application number
CN201911081036.6A
Other languages
English (en)
Inventor
张章松
郑仁海
马杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Electric Fufu Mdt Infotech Ltd
Original Assignee
China Electric Fufu Mdt Infotech Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by China Electric Fufu Mdt Infotech Ltd filed Critical China Electric Fufu Mdt Infotech Ltd
Priority to CN201911081036.6A priority Critical patent/CN110837506A/zh
Publication of CN110837506A publication Critical patent/CN110837506A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24554Unary operations; Data partitioning operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

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

Description

一种基于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读数据库和mysql写数据库分别配置不同的数据库地址。
进一步地,Mycat服务器上设有与各个分片存储区的数据库对应的映射库表,且映射库表的名称与mysql库的表名一致。
本发明采用以上技术方案,以mysql数据库为准由多台mysql数据库组成本发明的环境。实现将mysql的数据按照一定的规则,如各省的id值,进行数据的分片存储,存储在不同的数据库地址中。Mycat要处理的是,设置分片的规则、设置读写规则、设置mycat连接的用户名、密码、配置表结构。以mycat的连接信息为入口(ip、端口、用户名、密码),数据插入的时候根据该条数据的省id值,存储到对应的数据库中,这样就实现了数据的分片,按省id拆分了数据,原先一张数据表数据量可能有8000万,现在单张表可能就几百万。再设置好读写分离,即插入、读取数据由2台或多台数据库组成,再次提高效率。本发明实现数据的分片存储、读写分离,解决的单表数据量过大导致查询效率低下甚至查询假死的情况。

Claims (7)

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读数据库地址均包括对应数据库的ip、端口、用户名和密码。
3.一种基于Mycat的数据分片及读写分离系统,其特征在于:其包括至少一台Mycat服务器和多台mysql服务器,多台mysql服务器分别连接至Mycat服务器,Mycat服务器作为数据库的中间件mysql数据的读写均经由Mycat服务器,多台mysql服务器分成多个分片存储区,每个分片存储区具有唯一或多个的分片ID,每个分片存储区包括至少一台mysql服务器,每个分片存储区包括至少一个mysql读数据库和mysql写数据库,同一分片存储区的mysql读数据库和mysql写数据库的数据同步更新。
4.根据权利要求3所述的一种基于Mycat的数据分片及读写分离系统,其特征在于:多台mysql服务器按照省份ID的不同分成多个分片存储区,每条数据均带对应省份ID字段。
5.根据权利要求3所述的一种基于Mycat的数据分片及读写分离系统,其特征在于:每个省份ID的分片存储区存储带有对应省份ID的数据。
6.根据权利要求3所述的一种基于Mycat的数据分片及读写分离系统,其特征在于:同一分片存储区的mysql读数据库和mysql写数据库分别配置不同的数据库地址。
7. 根据权利要求3所述的一种基于Mycat的数据分片及读写分离系统,其特征在于:Mycat服务器上设有与各个分片存储区的数据库对应的映射库表,且映射库表的名称与mysql库的表名一致。
CN201911081036.6A 2019-11-07 2019-11-07 一种基于Mycat的数据分片及读写分离方法及系统 Pending CN110837506A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911081036.6A CN110837506A (zh) 2019-11-07 2019-11-07 一种基于Mycat的数据分片及读写分离方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911081036.6A CN110837506A (zh) 2019-11-07 2019-11-07 一种基于Mycat的数据分片及读写分离方法及系统

Publications (1)

Publication Number Publication Date
CN110837506A true CN110837506A (zh) 2020-02-25

Family

ID=69574646

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911081036.6A Pending CN110837506A (zh) 2019-11-07 2019-11-07 一种基于Mycat的数据分片及读写分离方法及系统

Country Status (1)

Country Link
CN (1) CN110837506A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111400285A (zh) * 2020-03-25 2020-07-10 杭州浮云网络科技有限公司 mySQL数据分片处理方法、装置、计算机设备和可读存储介质
CN112069332A (zh) * 2020-10-10 2020-12-11 四川虹魔方网络科技有限公司 一种实时高效的广告物料投放和获取方法及系统
CN112364019A (zh) * 2020-11-04 2021-02-12 中盈优创资讯科技有限公司 一种自定义Spark数据源实现数据快速写入ClickHouse的方法和装置
CN112417044A (zh) * 2020-11-20 2021-02-26 中国平安人寿保险股份有限公司 新增附加险系统的数据处理方法、装置及计算机设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170235809A1 (en) * 2016-02-17 2017-08-17 Talentica Software (India) Private Limited System and method of using replication for additional semantically defined partitioning
CN108153849A (zh) * 2017-12-20 2018-06-12 杭州登虹科技有限公司 一种数据库表切分方法、装置、系统和介质
CN108306955A (zh) * 2018-01-24 2018-07-20 北京万得嘉瑞汽车技术有限公司 一种车载终端大规模互联集群方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170235809A1 (en) * 2016-02-17 2017-08-17 Talentica Software (India) Private Limited System and method of using replication for additional semantically defined partitioning
CN108153849A (zh) * 2017-12-20 2018-06-12 杭州登虹科技有限公司 一种数据库表切分方法、装置、系统和介质
CN108306955A (zh) * 2018-01-24 2018-07-20 北京万得嘉瑞汽车技术有限公司 一种车载终端大规模互联集群方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111400285A (zh) * 2020-03-25 2020-07-10 杭州浮云网络科技有限公司 mySQL数据分片处理方法、装置、计算机设备和可读存储介质
CN111400285B (zh) * 2020-03-25 2023-06-20 杭州浮云网络科技有限公司 mySQL数据分片处理方法、装置、计算机设备和可读存储介质
CN112069332A (zh) * 2020-10-10 2020-12-11 四川虹魔方网络科技有限公司 一种实时高效的广告物料投放和获取方法及系统
CN112364019A (zh) * 2020-11-04 2021-02-12 中盈优创资讯科技有限公司 一种自定义Spark数据源实现数据快速写入ClickHouse的方法和装置
CN112364019B (zh) * 2020-11-04 2022-10-04 中盈优创资讯科技有限公司 一种自定义Spark数据源实现数据快速写入ClickHouse的方法和装置
CN112417044A (zh) * 2020-11-20 2021-02-26 中国平安人寿保险股份有限公司 新增附加险系统的数据处理方法、装置及计算机设备
CN112417044B (zh) * 2020-11-20 2023-10-31 中国平安人寿保险股份有限公司 新增附加险系统的数据处理方法、装置及计算机设备

Similar Documents

Publication Publication Date Title
CN110837506A (zh) 一种基于Mycat的数据分片及读写分离方法及系统
CN107273506B (zh) 一种数据库多表联合查询的方法
WO2019085471A1 (zh) 数据库同步方法、应用服务器及计算机可读存储介质
US8924365B2 (en) System and method for range search over distributive storage systems
CN103699638B (zh) 一种基于配置参数实现跨数据库类型同步数据的方法
US9846709B2 (en) Equi-joins between split tables
CN102122285B (zh) 一种数据缓存系统中的数据查询系统和数据查询方法
CN107977396B (zh) 一种KeyValue数据库的数据表的更新方法与表数据更新装置
CN105243162A (zh) 基于关系型数据库存储的对象化数据模型查询方法及装置
US11216516B2 (en) Method and system for scalable search using microservice and cloud based search with records indexes
CN111046034A (zh) 管理内存数据及在内存中维护数据的方法和系统
WO2007137133A2 (en) Database partitioning by virtual partitions
CN102890678A (zh) 一种基于格雷编码的分布式数据布局方法及查询方法
US20050187984A1 (en) Data driven database management system and method
CN104462421A (zh) 基于键-值数据库的多租户扩展方法
CN110928882B (zh) 一种基于改进红黑树的内存数据库索引方法及系统
CN103810219A (zh) 一种基于行存储数据库的数据处理方法及装置
CN104281717A (zh) 一种建立海量id映射关系的方法
CN102521304A (zh) 基于哈希的聚簇表存储方法
CN104462361B (zh) 一种匹配数据表中数据的方法和装置
CN103365987A (zh) 一种基于共享磁盘架构的集群数据库系统及数据处理方法
CN109165262A (zh) 一种关系型大表的分片集群系统及其分片方法
CN103617181A (zh) 一种亲缘关系通用数据库构建方法和装置
JP2001216307A (ja) リレーショナルデータベース管理システム及びそれを記憶した記憶媒体
CN104391952A (zh) 实现文件系统索引建立的方法及实现文件系统查询的方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20200225