MyCat

一、数据库性能瓶颈分析

1、数据库的连接数

2、单表数据量大(空间)

没有索引的时候,全表的一个扫描。有索引的情况,B+树
实现的角度,硬盘级的存储(表存储空间大小,索引大小)
 IO操作,从硬盘把索引加载到内存

3、硬件资源(QPS/TPS)

2、大数据量数据库性能瓶颈解决方案
    
读写分离、优化SQL、缓存、分区、分库、分表

3、读写分离、分库分表

读写分离(读写分离基于主从复制)
区别读、写多数据源方式进行数据的存储和加载
数据的存储(增删改)一般指定写数据源,数据的读取(查询)指定读数据源
一主一丛、互为主从、一主多从、级联主从(master、slave)
        
主从出现延时该怎么办?(优化、判断是否延时(Seconds_Behind_Master))
解决了 硬件资源(QPS/TPS)、连接数

分库分表,对数的库表进行拆分,用分片的方式对数据进行管理

垂直拆分    
单库-----》用户库-订单库-账户库(分布式事物(一致性)、关联查询)    
解决了 硬件资源(QPS/TPS)、连接数

水平拆分
user ----》userID%10=0--userID%10=1---userID%10=9
解决了空间问题、解决了单表数据量的问题
根据不同业务选择拆分规则

 解析sql---》数据源管理---》数据源分配---》请求/相应---》结果整合                            

4、基于mycat实现读写分离(8066端口)

application---》jdbc协议---》mycat服务---》mysql服务

Mycat是开源的分布式数据库中间件,基于阿里的cobar的开源框架之上,
它处于数据库服务与应用服务之间,进行数据处理与整合。
一个彻底开源的,面向企业应用开发的大数据集群,
支持事物、ACID、可以代替MySQL的加强版数据库。

逻辑表(ER表(用户地址表,同意分片存储)、分片表(分片规则UID%2)、全局表(数据字典)、非分片表(指向一个DB的普通表)),数据冗余
    
节点(一个BD实例可能是一个节点)

Mysql基于binlog的主从复制原理

Master(主表)---》Data changes(操作)---》binary log(二进制日志)(这些记录叫做二进制日志事件binary log events)

Slave通过I/OThread异步将master的binary log events拷贝到它的中继日志(relay log)

Slave执行relay日志中的事件,匹配自己的配置将需要执行的数据,在slave服务商执行一遍从而达到复制数据的目的

Master操作
接入mysql并创建主重复制的用户
给新用户赋予权限
指定服务ID,开启binlog日志记录,在my.cnf中加入
通过SHOW MASTER STATUS;查看Master db状态
    

Slave
指定服务器ID,指定同步的binlog存储位置,在my.cnf加入
接入slave的mysql服务,并配置
start slave
show slave status\;查看slave服务器状态
    
    目录
    bin程序目录,存放了window版本和linux版本可执行文件 ./mycat{start|restart|stop|status...}
    
    conf存放配置文件
    server.xml是Mycat服务器参数调整和用户授权的配置文件
    schema.xml是逻辑库定义和表以及分片定义的配置文件
    rule.xml是分片
    
        连续分片(按日期(天)分片、自定义数字范围分片、自然月分片)
        优点:扩容无需迁移数据,范围条件查询资源消耗小
        缺点:数据热点问题,并发额能力受限于分片节点
    
        离散分片(枚举分片、数字取模分片、字符串截取数字hash分片、一致性哈希分片)
        优点:数据分布均匀,并发能力强,不受分片节点
        缺点:移植性差,扩容难
            
        综合类分片(范围求模分片、取模范围约束分片)

    log4j2.xml 配置logs目录日志输出规则  
    
    lib目录主要存放mycat依赖的一些jar文件
    logs目录存放日志文件

Mycat关联查询的问题总结(Sharding-Sphere)

    用好ER表
    
    善用全局表(数据固定不经常改变)

    使用注解(在mycat内存中进行数据关联)

    db---》mysqldump(数据备份)---》mycat---》 ---》分片{1|2|3}   路由

    导出---》-ER子表--》导入

数据库设计

    规划(计划内、计划外)、扩展性(扩容、缩容)

分库分表

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值