栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

读写分离|分库分表

读写分离|分库分表

MyCat读写分离.分库分表 分库分表概述

1.互联网大数据时代,如何解决数据库性能瓶颈
2.读多写少的情况,采用读写分离
3.海量数据的情况,采用数据切分
数据切分方式1: 垂直切分
数据切分方式2: 水平切分
4.实现读写分离和数据切分的两种模式:
模式一:中间层代理(例如Mycat)
模式二:客户端模式(例如Sharding-jdbc)

如何选择垂直切分/水平切分

建议:先选择垂直拆分再考虑水平拆分

垂直拆分

1.按照业务去切分
2.每种业务一个数据库(比如:用户库,订单库,商品库)
3.不同业务之间,禁止跨库join联查

优点:
1.拆分后业务清晰,拆分规则明确
2.系统之间容易扩展和整合
3.数据维护简单

缺点:
1.部分业务表无法join,只能通过接口调用,提升了系统的复杂度
2.跨库事务难以处理
3.垂直切分后,某些业务数据过于庞大,仍然存在单体性能瓶颈-----考虑水平拆分

水平切分

1.将一张表的数据按照某种规则分到不同的数据库
2.需确定分片的规则
3.使用分片字段查询时,可确定实体库,其它字段查询,查询所有表

优点:
1.解决了单库大数据,高并发的性能瓶颈
2.拆分规则封装好,对应用端几乎透明,开发人员无需关心拆分细节
3.提高了系统的稳定性和负载能力

缺点:
1.拆分规则很难抽象
2.分片事务一致性难以解决
3.二次扩展时,数据迁移,维护难度大

Mycat安装

mycat安装

mycat中的分库分表、读写分离的配置 server.xml

1.配置Mycat的用户名、密码、权限、Schema等
2.如同给Mysql新建用户一样
3.客户端连接Mycat与连接Mysql无异


	.....
	
		123456
		user
		
	

schema.xml(核心配置文件)

1.配置dataHost(节点主机),包括读host、写host
2.配置dataNode(数据节点),指定到具体的数据库
3.配置schema,表名、数据节点、分片规则等
4.schema标签中,checkSQLschema是否去掉SQL中的schema
5.sqlMaxLimit:select默认的limit值,仅对分片表有效.
6.table标签,定义表, name属性,定义逻辑表的表名;dataNode属性,定义逻辑表的数据节点,
rule属性:定义分片表的分片规则,必须与rule.xml中的tableRule对应;ruleRequired属性,是否绑定分片规则,如果为true,没有绑定分.
配规则,程序报错


		
			
		
		
 				  select user()
 				  
                  
        
        
                  select user()
                  
                  
          

 
mycat的2个端口 

8066 数据访问端口,即进行 DML 和 DDL 操作;
9066数据库管理端口,即 mycat 服务管理控制功能,用于管理mycat的整个集群状态;

管理端口的命令使用

转载请注明:文章转载自 www.mshxw.com
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号