mysql 数字取模_Mycat之数据库分片(取模分片)-yellowcong
取模分片,简单来讲,根据数据库的主键和存储的节点数进行取模操作,然后根据取模的结果,将数据存放到对应的节点中,取模分表,可以将数据均匀的分配到各个库中。实现的步骤: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相关推荐
- python爬取公众号文章数据库,爬取微信公众号所有文章的请教
废话还是少说直接上代码: __biz=MzA3ODA5NjgyOA uin=MjM3ODE4ODcxMg key=7b81aac53bd2393d5e902e058ff64404320d0d6b983 ...
- mycat分表之ER表分片、范围分片、取模分片、日期分片、全局表等
概述 数据库进行水平分表时,需要按照一定规则对数据进行分片. Mycat的分片策略可以分为两种: 连续分片和离散分片. 连续分片常用的有分片规则有: 范围分片. 日期分片. 优点:如果进行范围查询,比 ...
- python爬取微博数据存入数据库_Python爬取微博数据并存入mysql,excel中
寒假期间做微博数据统计,由于是部门要求,也没办法,自己又是一个懒人,直接用python实现吧.写的很粗糙,也很差,请大家别介意. 总的来说分成两个模块:一个爬取微博数据存入数据库,一个从数据库调取数据 ...
- php mysql取出来,php从mysql数据库中取数据
php从数据库中取数据 面向过程 $server_name="localhost:3306"; //数据库服务器名称 $username="root"; // ...
- 关系型数据库全表扫描分片详解
导读:数据总线(DBus)专注于数据的实时采集与实时分发,可以对IT系统在业务流程中产生的数据进行汇聚,经过转换处理后成为统一JSON的数据格式(UMS),提供给不同数据使用方订阅和消费,充当数仓平台 ...
- mycat分片mysql_49 mycat分片集群mysql分片分表策略
1.数据库集群如何保证自动增长唯一性 2.数据库分表分库策略 3.MyCat分片集群策略 4.MyCat分片策略原理 MySQL数据库简单介绍 MySQL作为世界上使用最为广泛的数据库之一,免费是其原 ...
- mysql基础小测试三_数据库---MySQL(三)
一.视图 视图是一个虚拟表,是sql的查询结果,其内容由查询定义.同真实的表一样,视图包含一系列带有名称的列和行数据,在使用视图时动态生成.视图的数据变化会影响到基表,基表的数据变化也会影响到视图[i ...
- mysql部门人员排序设计_MySQL数据库访问性能优化
MYSQL应该是最流行的WEB后端数据库.大量应用于PHP,Ruby,Python,Java 等Web语言开发项目中,无论NOSQL发展多么快,都不影响大部分架构师选择MYSQL作为数据存储. MYS ...
- mysql mycat水平分库_MyCat水平分库
一.什么是水平分库 将一张表水平切分到多个库中 1.1分片原则 1.需要分片的表是少数的 2.能不切分尽量不要切分 3.日志表可以采取归档方式 4.选择合适的切分规则和分片建,确保数据分片均匀,否则依 ...
最新文章
- CentOS Firewall防火墙设置规则
- android 脸部识别之3D,2018年高通将推出整合3D脸部识别功能的Android手机芯片
- kafka架构:分区机制详解
- 普里姆(Prim)求最小生成树
- 一个最简单的SAP UI5应用部署到SAP云平台CloudFoundry环境后,自动生成了哪些资源
- 使用Spock Mocks进行Grails 3.3集成测试
- OSSchedLock()--上锁函数
- 50个超实用的生活小点子
- 【个人笔记】OpenCV4 C++ 快速入门 12课
- 简单的实现了Dijkstra,
- 以太坊 ERC EIP是什么
- Axure实操笔记之axure炫酷的作者信息设置
- 软件教程给MyEclipse 10增加SVN功能
- 微软背叛wintel联盟,Intel似乎正陷入四面楚歌之中
- Final Project 期末项目: PySnake
- 电脑声控 电脑机器人功能
- 信息系统综合知识八 专业英语
- 打包chromium浏览器
- Python编程基础之Python语言的基础知识(上)
- 有什么实用的电脑录音软件