加入收藏 | 设为首页 | 会员中心 | 我要投稿 河北网 (https://www.hebeiwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

分库分表,读写疏散后,数据库中间件饰演了一个奈何的脚色?

发布时间:2019-02-01 10:43:28 所属栏目:编程 来源:李立敏
导读:分库分表,读写疏散会带来哪些题目? 前面一篇文章图解漫衍式体系架构(看保举阅读)或许讲了一下分库分表,以及读写疏散呈现的场景,分库分表为了办理高并发和海量数据的题目。 分库后会呈现新的题目 1、跨库join题目 若有2个库,订单库,用户库,要查询

autopartition-long.txt具体的分片计策

  1. # range start-end ,data node index  
  2. # K=1000,M=10000.  
  3. 00-500M=0  
  4. 500M-1000M=1  
  5. 1000M-1500M=2 

这个设置的意思是,id在0到500w放在第一个分片,以此类推

小编这里用Navicat(数据库毗连器材)毗连到当地的mycat

主机:localhost

端口:8066

用户名:root(server.xml中设置好的用户名暗码)

暗码:123456

看到有一个TestDB库,在这个库内里执行建表语句

  1. CREATE TABLE `tb_test` (  
  2.   `id` int(11) NOT NULL,  
  3.   `name` varchar(255) DEFAULT NULL,  
  4.   PRIMARY KEY (`id`)  
  5. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; 

然后到对应的物理数据库db1,db2,db3上看,3个库都有了这个表。

在逻辑数据库中插入如下三条数据

  1. insert into tb_test (id, name) values (1, "1");  
  2. insert into tb_test (id, name) values (5000001, "5000001");  
  3. insert into tb_test (id, name) values (10000001, "10000001"); 

可以看到id为1的数据插入到物理数据库中的db1,id为5000001的数据插入到db2,id为10000001的数据插入到db3

在逻辑数据库中执行如下语句又能拿到这3笔记录

  1. select id, name from tb_test 

执行如下语句,可以看到mycat从三个数据库中取了记录,LIMIT 100是由于schema.xml中设置了sqlMaxLimit=“100”

  1. explain select id, name from tb_test 

分库分表,读写疏散后,数据库中间件饰演了一个奈何的脚色?

有了mycat往后,我们的数据库地点设置成mycat即可,它帮我们做了许多,其他各类分片法则,读写疏散等的设置就不再演示,领略整个框架的或许运行流程就行

最后再分享一个常识点,mycat1.5 开始会支持当地 xml 启动,以及从 zookeeper 加载设置转为当地 xml 的两种方法,即原本分享的zookeeper可以用作设置中心

【编辑保举】

  1. 高吞吐低耽误的 NoSQL 数据库——Scylla 3.0 宣布
  2. MySQL插入机能优化
  3. MySQL计划缺陷,窃取文件轻而易举
  4. MySQL机能突发变乱题目排查能力
  5. 一文说尽MySQL事宜及ACID特征的实现道理
【责任编辑:庞桂玉 TEL:(010)68476606】
点赞 0

(编辑:河北网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读