mysql 水平拆分实例_2021先定个小目标?搞清楚MyCat分片的两种拆分方法和分片规则!(二):水平拆分实例解析和代码实现!...

本文介绍了MySQL数据库的水平拆分,通过一个日志表的案例,展示了如何利用MyCat进行数据切分,包括在多台数据库实例上创建数据库、配置schema.xml和server.xml,以及数据插入和查询的测试过程。
摘要由CSDN通过智能技术生成

一、概述

根据表中的数据的逻辑关系,将同一个表中的数据按照某种条件拆分到多台数据库(主机)上面,这种切分称之为数据的水平(横向)切分。

c1feb61222f7

二、案例场景

c1feb61222f7

在业务系统中, 有一张表(日志表), 业务系统每天都会产生大量的日志数据 , 单台服务器的数据存储及处理能力是有限的, 可以对数据库表进行拆分, 原有的数据库表拆分成以下表 :

c1feb61222f7

参考资料:《开源数据库中间件MyCat实战笔记》

快速入手通道:发送简信“MyCat资料”免费获取

三、准备工作

1.准备三台数据库实例

192.168.192.157

192.168.192.158

192.168.192.159

2.在三台数据库实例中创建数据库

create database log_db DEFAULT CHARACTER SET utf8mb4;

四、schema.xml的配置

select user()

select user()

select user()

五、server.xml的配置

123456

LOG_DB

123456

LOG_DB

123456

LOG_DB

true

六、测试

1.在MyCat数据库中执行建表语句

CREATE TABLE `tb_log` (

`id` bigint(20) NOT NULL COMMENT 'ID',

`model_name` varchar(200) DEFAULT NULL COMMENT '模块名',

`model_value` varchar(200) DEFAULT NULL COMMENT '模块值',

`return_value` varchar(200) DEFAULT NULL COMMENT '返回值',

`return_class` varchar(200) DEFAULT NULL COMMENT '返回值类型',

`operate_user` varchar(20) DEFAULT NULL COMMENT '操作用户',

`operate_time` varchar(20) DEFAULT NULL COMMENT '操作时间',

`param_and_value` varchar(500) DEFAULT NULL COMMENT '请求参数名及参数值',

`operate_class` varchar(200) DEFAULT NULL COMMENT '操作类',

`operate_method` varchar(200) DEFAULT NULL COMMENT '操作方法',

`cost_time` bigint(20) DEFAULT NULL COMMENT '执行方法耗时, 单位 ms',

`source` int(1) DEFAULT NULL COMMENT '来源 : 1 PC , 2 Android , 3 IOS',

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

2.插入数据

INSERT INTO `tb_log` (`id`, `model_name`, `model_value`, `return_value`,

`return_class`, `operate_user`, `operate_time`, `param_and_value`, `operate_class`,

`operate_method`, `cost_time`,`source`)

VALUES('1','user','insert','success','java.lang.String','10001','2020-02-26 18:12:28','{\"age\":\"20\",\"name\":\"Tom\",\"gender\":\"1\"}','cn.itcast.controller.UserController','insert','10',1);

INSERT INTO `tb_log` (`id`, `model_name`, `model_value`, `return_value`,`return_class`,

`operate_user`, `operate_time`, `param_and_value`, `operate_class`, `operate_method`, `cost_time`,`source`)

VALUES('2','user','insert','success','java.lang.String','10001','2020-02-26 18:12:27','{\"age\":\"20\",\"name\":\"Tom\",\"gender\":\"1\"}','cn.itcast.controller.UserController','insert','23',1);

INSERT INTO `tb_log` (`id`, `model_name`, `model_value`, `return_value`, `return_class`, `operate_user`, `operate_time`, `param_and_value`, `operate_class`,

`operate_method`, `cost_time`,`source`)

VALUES('3','user','update','success','java.lang.String','10001','2020-02-26 18:16:45','{\"age\":\"20\",\"name\":\"Tom\",\"gender\":\"1\"}','cn.itcast.controller.UserController','update','34',1);

INSERT INTO `tb_log` (`id`, `model_name`, `model_value`, `return_value`,

`return_class`, `operate_user`, `operate_time`, `param_and_value`, `operate_class`,

`operate_method`, `cost_time`,`source`)

VALUES('4','user','update','success','java.lang.String','10001','2020-02-26 18:16:45','{\"age\":\"20\",\"name\":\"Tom\",\"gender\":\"1\"}','cn.itcast.controller.UserController','update','13',2);

INSERT INTO `tb_log` (`id`, `model_name`, `model_value`, `return_value`,

`return_class`, `operate_user`, `operate_time`, `param_and_value`, `operate_class`,

`operate_method`, `cost_time`,`source`)

VALUES('5','user','insert','success','java.lang.String','10001','2020-02-26 18:30:31','{\"age\":\"200\",\"name\":\"TomCat\",\"gender\":\"0\"}','cn.itcast.cont roller.UserController','insert','29',3);

INSERT INTO `tb_log` (`id`, `model_name`, `model_value`, `return_value`,

`return_class`, `operate_user`, `operate_time`, `param_and_value`, `operate_class`,

`operate_method`, `cost_time`,`source`)

VALUES('6','user','find','success','java.lang.String','10001','2020-02 2618:30:31','{\"age\":\"200\",\"name\":\"TomCat\",\"gender\":\"0\"}','cn.itcast.cont roller.UserController','find','29',2);

参考资料:《开源数据库中间件MyCat实战笔记》

快速入手通道:发送简信“MyCat资料”免费获取

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值