CN110837506A - 一种基于Mycat的数据分片及读写分离方法及系统 - Google Patents
一种基于Mycat的数据分片及读写分离方法及系统 Download PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
- G06F16/24554—Unary operations; Data partitioning operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational 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的数据分片及读写分离方法及系统。
背景技术
市面上很多的关系型数据库产品,如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库的表名一致。
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)
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)
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 | 北京万得嘉瑞汽车技术有限公司 | 一种车载终端大规模互联集群方法 |
-
2019
- 2019-11-07 CN CN201911081036.6A patent/CN110837506A/zh active Pending
Patent Citations (3)
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)
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 |