数据库分库分表和Mycat软件

随着业务发展,数据库面临性能瓶颈,本文介绍了分库分表的概念和Mycat软件的使用。Mycat实现读写分离和数据分片,支持多种分片规则,提供数据迁移方案,确保数据一致。通过部署和配置Mycat,实现数据库的高效管理和访问。
摘要由CSDN通过智能技术生成

数据库分库分表和mycat软件

背景

随着时间和公司的业务的发展,数据库中的表会越来越多,表中的数据量也会越来越大,此时相应的数据操作(增删改查)等会越来越慢;而且未进行分布式部署的情况下,一台服务器的资源(CPU,内存,磁盘,IO)有限,数据库所能承载的数据量以及数据处理能力都将遭遇瓶颈,基于以上原因,需要对数据库进行分库分表操作.

一.什么是分库分表

将存放在一台数据库服务器中的数据,按照特定的方式进行拆分,分散存放到多台数据库服务器中,以达到分散单台服务器负载的效果

1.水平分割

按照表中指定字段的分片规则,将表记录按行切分,分散存储到多个数据库中

在这里插入图片描述

2.垂直切分

将单个数据库的多个表按业务类型分类,分散存储到不同的数据库

在这里插入图片描述

二.方案

利用mycat中间件对原有数据库在不停机的情况下将数据库中数据动态迁移实现分库,分表储存的方式,最终实现以下目标。
1.减少对单一数据库资源的占用
2.数据分布式存储,更加安全可靠
3.加快SQL语句查询速率,解决部分慢查询问题
4.缓解单一数据库因数据存储量过大及高并发写/读而导致的性能问题

1.方案基础架构图

在这里插入图片描述

2.实现过程

修改系统配置为将数据同时写入数据库中间件和老库,利用数据迁移工具(自己先写好)将老库原始数据迁移至中间件存入新库,数据库中间件判断分库分表中是否存在某数据(若不存在,直接写入;若存在,比较数据时间戳,确保是新数据覆盖老数据),数据库中间件根据数据分片规则将数据分别存入对应的数据库.导完一次数据后程序自动进行校验,对比老库和新库的数据是否一致,如果不一致再次从老库读取不一致部分数据写入新库,再校验.反复循环直至老库和新库中每个表每条数据完全一致为止,最后将系统配置改为将数据只写入数据库中间件.
在这里插入图片描述
将业务紧密,表间关联密切的表划分在一起,垂直切分以后,对表格的数据量和增长速度进一步分析,确定是否需要进行水平切分.当数据增长缓慢,单一数据库在较长时间内均可承载产品业务量,则不需要进行水平切分;若划分到一起的表格数据量巨大,增速迅猛,需要进一步进行水平分割。在这里插入图片描述

三.中间件Mycat介绍

mycat是基于Java的分布式数据库系统中间件,为高并发环境的分布式存储提供解决方案,适合数据大量写入的存储需求,支持Mysql,Oracle,Sqlserver,Mongodb等,提供数据读写分离服务和分片服务,基于阿里巴巴Cobar进行研发的开源软件

1.读写分离
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值