mysql -- 分库分表

本文详细介绍了数据库中间件Mycat在分库分表中的应用,包括垂直切分和水平切分,以及Mycat的配置、启动和测试过程,强调了在数据量大时提高并发能力和I/O性能的重要性。
摘要由CSDN通过智能技术生成

https://zhuanlan.zhihu.com/p/72584056

1、mycat介绍:

mycat是基于java编写的数据库中间件。

其可以用mysql原生协议与多个mysql服务器通信,也可以用JDBC协议与大多数主流服务器通信。

核心是分库分表,配合数据库的主从模式还可以实现读写分离。

2、使用mycat的优势

1)数据量级:

单一的mysql数据存储量级和操作量级有限;

mycat可以管理多个mysql数据库,同时实现数据的存储和操作。

3、mycat实现分库分表

1)垂直切分/纵向切分

把原本存储于一个库的数据存储到多个库上。

举例:gass平台中,把DeviceService、MarketService、PayService涉及的表分别存储在不同的库。

优点:减少写入数据时锁表对查询的影响 ; 使得单表查询所需的检索行数变少。

2)水平切分/横向切分

把原本存储于一个表的数据分块存储到多个表上。当一个表中的数据量过大时,我们可以把该表的数据按照某种规则进行划为,然后存储到多个结构相关的表,和不同的库上。

例如userDB的 record_aa_used 数据量极大,我们可以把userDB切分成结构相同的多个userDB:part0DB,part1DB等。

再将record_aa_used 切分成很多的record_aa_used:record_aa_used: record_aa_used0、record_aa_used1、record_aa_used2等 。

优点:单表的并发能力提高了,磁盘I/O性能也提高了;如果出现高并发,总表可以根据不同的查询将并发压力分到不同的小表里面 。

缺点:无法实现表连接查询 。

3)逻辑库 schema  和  逻辑表  table

mycat中定义的database ,逻辑上存在的,物理上不存在 。主要针对纵向切分提供的概念。

Mycat 中定义的 table.是逻辑上存在,物理上是不存在的. 主要是针对横向切分提供的概念.

4)数据主机  dataHost

物理 MySQL 存放的主机地址.可以使用主机名,IP,域名定义.

5)数据节点  dataNode

配置物理的 database. 数据保存的物理节点.就是 database.

6)分片规则

当控制数据的时候,如何访问物理 database 和 table.

在 Mycat 处理具体的数据 CRUD 的时候,如何访问 dataHost 和 dataNode 的算法.如:哈希算法,crc32 算法等.

————————————————————————————————————————————————————

配置实现分库分表

转 https://blog.csdn.net/vbirdbest/article/details/83448757

1、上传、解压 、配置

主要编辑的配置文件在conf目录下,分别为schema.xml、rule.xml、server.xml、sequence_db_conf.properties四个文件。

server.xml主要配置逻辑数据库的信息,包括用户名、密码、端口等,也是代码中数据库连接的地址;

rule.xml主要配置路由策略、拆分规则

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值