文章详情

短信预约信息系统项目管理师 报名、考试、查分时间动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

MyCat教程五:实现分库分表

2015-12-28 15:32

关注

  本文我们来介绍下MyCat的分库分表操作

 

 

一、分片规则介绍

  在rule.xml中定义了各种myCat支持的分片规则。

  1. 取模mod-long
  2. 自然月分片 sharding-by-month
  3. 按日期(天)分片sharding-by-date
  4. 按单月小时拆分sharding-by-hour
  5. 范围约定,提前规划好分片字段某个范围属于哪个分片,auto-sharding-long
  6. 范围求模分片
  7. 取模范围约束sharding-by-pattern
  8. 分片枚举sharding-by-intfile
  9. 固定分片hash算法
  10. 截取数字hash解析sharding-by-stringhash
  11. 一致性hash
  12. 日期范围hash分片rangeDateHash
  13. 截取数字做hash求模范围约束sharding-by-prefixpattern
  14. 应用指定,在运行阶段有应用自主决定路由到那个分片。sharding-by-substring
  15. 冷热数据分片 sharding-by-date
  16. 有状态分片算法
  17. crc32slot分片算法

注意:

  1. id中推荐配置主键列
  2. 所有的 tableRule 只能使用一次。如果需要为多个表配置相同的分片规则,那么需要在此重新定义该规则。
  3. 在 crc32Slot 算法中的分片数量一旦给定,MyCat 会将该分片数量和 slor 的取值范围保存到文件中。在次修改分片数量时是不会生效的,需要将该文件删除。文件位置位于 conf目录中的 ruledata 目录中。

二、分库配置

2.1 创建3个数据库

  在master中分别创建3个数据库demo1,demo2,demo3,因为主从的关系会同步到从库中。

create database demo1 default character set utf8;
create database demo2 default character set utf8;
create database demo3 default character set utf8;
 

在这里插入图片描述

2.2 schema.xml配置

  修改schema.xml文件中的信息,如下:




	
		
select user()  

注意:

  1. 因为有三个库,所以添加了三个dataNode
  2. 使用的分配规则是crc32slot
  3. 主从和读写分离设置没有动,所以writeHostreadHost的配置没变

2.3 修改rule.xml文件

  因为使用的是crc32slot算法,且有3个数据库,所以需要修改rule.xml中的配置

在这里插入图片描述
同时我们需要删除掉ruledata目录中的规则文件,不然修改的3不会起作用

在这里插入图片描述

重启mycat服务

在这里插入图片描述

查看分配规则

在这里插入图片描述

2.3 在mycat中创建t_user表

  先删除原来创建的t_user表,然后通过mycat创建t_user表示,通过mycat创建会多出来一个_slot字段。

CREATE TABLE t_user (
	`id` INT,
	`name` VARCHAR (30),
	`age` INT,
	PRIMARY KEY (`id`)
) ENGINE = INNODB DEFAULT CHARSET = utf8;
 

在这里插入图片描述

三、分库测试

  在mycat客户端插入数据,然后去对应的物理库中查询具体的情况

insert into t_user(id,name,age)values(1,"HG-93",14)
 

注意:插入语句的语法要完整,不要偷懒省略字段,尤其是id自增长!!!

在这里插入图片描述

数据按照我们设置的规则分别存储到了各自数据的表结构中了。

然后我们来看下查询操作,通过mycat看能否将所有的数据都查询出来,

在这里插入图片描述

 


关注微信公众号【程序员的梦想】,专注于Java,SpringBoot,SpringCloud,微服务,Docker以及前后端分离等全栈技术。

 

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 资料下载
  • 历年真题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容
咦!没有更多了?去看看其它编程学习网 内容吧