取模分片,简单来讲,根据数据库的主键和存储的节点数进行取模操作,然后根据取模的结果,将数据存放到对应的节点中,取模分表,可以将数据均匀的分配到各个库中。实现的步骤:1、创建数据库,2、配置schema.xml文件,3、配置server.xml,4、添加rule.xml。这种方式,导致每一个库里面的数据不连续,导致查询的时候,比较耗费资源,但是如果有一些需要按照数字来计算类型的,可以采用这个。

创建数据库

我创建一个学生表,code是学好,我们的学好例子:2012020891 ,有10位,快超出了范围,所以我们使用bigint。

-- 创建数据库

CREATE DATABASE IF NOT EXISTS local1;

-- 使用local1数据库

use local1;

-- 创建用户表

create table student(code bigint(10) comment '学号',dbname varchar(32) comment '数据库名',username varchar(32) comment '用户名称',age int(3) comment '年龄' );

CREATE DATABASE IF NOT EXISTS local2;

use local2;

create table student(code bigint(10) comment '学号',dbname varchar(32) comment '数据库名',username varchar(32) comment '用户名称',age int(3) comment '年龄' );

CREATE DATABASE IF NOT EXISTS local3;

use local3;

create table student(code bigint(10) comment '学号',dbname varchar(32) comment '数据库名',username varchar(32) comment '用户名称',age int(3) comment '年龄' );

查看建立好的表结构

配置mycat

1、配置schema.xml

vim ./conf/schema.xml

#添加表

#通过这种$的方法,解决了有很多数据库的情况

#jdbc_node$1-3 ,表示的是jdbc_node、jdbc_node、jdbc_node3

完整配置

select user()

2、配置server.xml

0

0

2

0

0

1

1m

1k

0

384m

true

root

yellowcong

user

yellowcong

true

3、配置rule.xml

通过学生的学号(code)字段,进行分片操作。

vim ./conf/rule.xml

#添加rule ,

#设置通过code 这个字段进行分片

code

rang-mod-student

#添加rang-mod-student的配置

#count 是分片的数量

3

测试插入数据

插入数据的时候,必须指定列名。mycat不支持直接插入不带列明的数据。

#连接mycat

mysql -h 127.0.0.1 -P 8066 -u root -proot

#使用yellowcong 数据库

use yellowcong

#插入数据

insert into student (code,dbname,username,age) values (1,database(),'yellowcong',12);

insert into student (code,dbname,username,age) values (2,database(),'yellowcong',12);

insert into student (code,dbname,username,age) values (3,database(),'yellowcong',12);

insert into student (code,dbname,username,age) values (4,database(),'yellowcong',12);

插入的结果,会根据指定的code,进行与运算,运算结果如下表, 可以看到与的结果和对应,结果发现对应的node节点,开始是从 local1开始的。。。

code

与运算结果

对应数据库

1

1%3 = 1

local2

2

2%3 = 2

local3

3

3%3 = 0

local1

4

4%3 = 1

local2

实际结果

问题集合

io.mycat.config.util.ConfigException: java.lang.NullPointerException

这个问题的原因,多半就是节点不存在的情况。简单来讲,就是表的节点配置有问题

检查节点配置

error java.net.BindException: 地址已在使用

ip地址占用中,所以需要关闭8066端口的程序,然后再启动mycat服务

解决办法

#查看端口占用情况

netstat -anop | grep 8066

#杀死占用端口的线程

kill 21396

#重启mycat服务

./bin/mycat restart

can’t find table define in schema USER schema:yellowcong

表不存在与schemal,简单来讲,就是俺的sql插入的表对象写错了。

mysql 数字取模_Mycat之数据库分片(取模分片)-yellowcong相关推荐

  1. python爬取公众号文章数据库,爬取微信公众号所有文章的请教

    废话还是少说直接上代码: __biz=MzA3ODA5NjgyOA uin=MjM3ODE4ODcxMg key=7b81aac53bd2393d5e902e058ff64404320d0d6b983 ...

  2. mycat分表之ER表分片、范围分片、取模分片、日期分片、全局表等

    概述 数据库进行水平分表时,需要按照一定规则对数据进行分片. Mycat的分片策略可以分为两种: 连续分片和离散分片. 连续分片常用的有分片规则有: 范围分片. 日期分片. 优点:如果进行范围查询,比 ...

  3. python爬取微博数据存入数据库_Python爬取微博数据并存入mysql,excel中

    寒假期间做微博数据统计,由于是部门要求,也没办法,自己又是一个懒人,直接用python实现吧.写的很粗糙,也很差,请大家别介意. 总的来说分成两个模块:一个爬取微博数据存入数据库,一个从数据库调取数据 ...

  4. php mysql取出来,php从mysql数据库中取数据

    php从数据库中取数据  面向过程 $server_name="localhost:3306"; //数据库服务器名称 $username="root"; // ...

  5. 关系型数据库全表扫描分片详解

    导读:数据总线(DBus)专注于数据的实时采集与实时分发,可以对IT系统在业务流程中产生的数据进行汇聚,经过转换处理后成为统一JSON的数据格式(UMS),提供给不同数据使用方订阅和消费,充当数仓平台 ...

  6. mycat分片mysql_49 mycat分片集群mysql分片分表策略

    1.数据库集群如何保证自动增长唯一性 2.数据库分表分库策略 3.MyCat分片集群策略 4.MyCat分片策略原理 MySQL数据库简单介绍 MySQL作为世界上使用最为广泛的数据库之一,免费是其原 ...

  7. mysql基础小测试三_数据库---MySQL(三)

    一.视图 视图是一个虚拟表,是sql的查询结果,其内容由查询定义.同真实的表一样,视图包含一系列带有名称的列和行数据,在使用视图时动态生成.视图的数据变化会影响到基表,基表的数据变化也会影响到视图[i ...

  8. mysql部门人员排序设计_MySQL数据库访问性能优化

    MYSQL应该是最流行的WEB后端数据库.大量应用于PHP,Ruby,Python,Java 等Web语言开发项目中,无论NOSQL发展多么快,都不影响大部分架构师选择MYSQL作为数据存储. MYS ...

  9. mysql mycat水平分库_MyCat水平分库

    一.什么是水平分库 将一张表水平切分到多个库中 1.1分片原则 1.需要分片的表是少数的 2.能不切分尽量不要切分 3.日志表可以采取归档方式 4.选择合适的切分规则和分片建,确保数据分片均匀,否则依 ...

最新文章

  1. CentOS Firewall防火墙设置规则
  2. android 脸部识别之3D,2018年高通将推出整合3D脸部识别功能的Android手机芯片
  3. kafka架构:分区机制详解
  4. 普里姆(Prim)求最小生成树
  5. 一个最简单的SAP UI5应用部署到SAP云平台CloudFoundry环境后,自动生成了哪些资源
  6. 使用Spock Mocks进行Grails 3.3集成测试
  7. OSSchedLock()--上锁函数
  8. 50个超实用的生活小点子
  9. 【个人笔记】OpenCV4 C++ 快速入门 12课
  10. 简单的实现了Dijkstra,
  11. 以太坊 ERC EIP是什么
  12. Axure实操笔记之axure炫酷的作者信息设置
  13. 软件教程给MyEclipse 10增加SVN功能
  14. 微软背叛wintel联盟,Intel似乎正陷入四面楚歌之中
  15. Final Project 期末项目: PySnake
  16. 电脑声控 电脑机器人功能
  17. 信息系统综合知识八 专业英语
  18. 打包chromium浏览器
  19. Python编程基础之Python语言的基础知识(上)
  20. 有什么实用的电脑录音软件

热门文章

  1. kali下载地址和安装方法
  2. ipad投屏到linux
  3. 超薄、散热、柔性 LED贴膜屏发展及产业趋势发展
  4. Grasshopper 的Python电池——挤出点到直线
  5. 【杂谈】windows10给U盘或者文件加密(设置访问密码)
  6. 苹果iphone lightning引脚接口图,自己焊接图
  7. 下角标怎么打java_java 实现excel中上下角标处理实现原理
  8. 计算机改变生活英语作文,改变我们的生活英语作文
  9. 智慧城市:智能红绿灯的现在与未来发展
  10. 快手上用计算机算出一段话,快手一边说话一边出字是怎么弄的 可以这样做