分区和分片

数据库群组是由于各种各样的原因建立的,他可以提升处理能力、容忍错误,并且

提升大量服务器同时工作的的性能。群组有时会组合分区和共享功能,来将大量复杂的任务

分拆成更加简单的任务,更加可控的单元。

插件可以支持各种各样的 MySQL 群组,一些群组会内置一些分区和共享的方法,他们可以

被透明的使用。插件支持最常用的 MySQL 主从同步表过滤和共享 (应用级分区)。

MySQL 主从同步支持过滤方式的分区,他可以让你创建所有数据库同步,或者部分数据库同步。

这样就要求应用能够拥有同样的策略,你可以通过

从 1.5.0 版本开始,可以通过节点组过滤和 SQL hints 完成手动的分区和共享。

节点组过滤器可以让你将 master 和 slave 命名成一个符号。 范例中,

master_0 和 slave_0

被放在一个命名为 Partition_A 的组中。他们能够完全的组成一个群组。

例如,你可以使用一个节点群组用于共享,并且使用使用群组名称作为一个地址共享,

就像 Shard_A_Range_0_100

示例 #1 Cluster node groups

{

"myapp": {

"master": {

"master_0": {

"host": "localhost",

"socket": "\/tmp\/mysql.sock"

}

},

"slave": {

"slave_0": {

"host": "simulate_slave_failure",

"port": "0"

},

"slave_1": {

"host": "127.0.0.1",

"port": 3311

}

},

"filters": {

"node_groups": {

"Partition_A" : {

"master": ["master_0"],

"slave": ["slave_0"]

}

},

"roundrobin": []

}

}

}

示例 #2 通过 SQL hints 完成手动分区

if ($hint) {$sql=$hint.$sql;

}

if (!($res=$mysqli->query($sql))) {printf("[%d] %s",$mysqli->errno,$mysqli->error);

returnfalse;

}$row=$res->fetch_assoc();printf("%d - %s - %s\n",$row['_thread'],$row['_hint'],$sql);

returntrue;

}$mysqli= newmysqli("myapp","user","password","database");

if (!$mysqli)/* Of course, your error handling is nicer... */die(sprintf("[%d] %s\n",mysqli_connect_errno(),mysqli_connect_error()));/* All slaves allowed */select($mysqli,"slave_0");select($mysqli,"slave_1");/* only servers of node group "Partition_A" allowed */select($mysqli,"slave_1","/*Partition_A*/");select($mysqli,"slave_1","/*Partition_A*/");?>

6804 - slave_0 - SELECT CONNECTION_ID() AS _thread, 'slave1' AS _hint FROM DUAL

2442 - slave_1 - SELECT CONNECTION_ID() AS _thread, 'slave2' AS _hint FROM DUAL

6804 - slave_0 - /*Partition_A*/SELECT CONNECTION_ID() AS _thread, 'slave1' AS _hint FROM DUAL

6804 - slave_0 - /*Partition_A*/SELECT CONNECTION_ID() AS _thread, 'slave1' AS _hint FROM DUAL

默认的,插件使用所有配置的 master 和 slave 进行查询操作。但是如果一个查询,使用

/*node_group*/ 的 SQL hint,那么插件将只使用在

node_group 列出的服务器进行查询操作。所以,SELECT

查询操作,只会在 /*Partition_A*/ 列出的 slave_0

中进行。

分区和分片的区别_PHP: 分区和分片 - Manual相关推荐

  1. 分区和分片的区别_MySQL分区与分片的差异

    要了解分区与分片之间的差异,首先我们需要知道什么是分片与分区.分片:分片Sharding 不是一门新技术,而是一个相对简朴的软件理念.众所周知,MySQL 5 之后才有了数据表分区功能,那么在此之前, ...

  2. 数据库分区、分表、分片的区别

    一.分区的概念 分区并不是生成新的数据表,而是将表的数据均衡分摊到不同的硬盘,系统或是不同服务器存储介子中,实际上还是一张表.另外,分区可以做到将表的数据均衡到不同的地方,提高数据检索的效率,降低数据 ...

  3. 分区和分片的区别_Mysql分表和分区的区别、分库分表介绍与区别

    分表和分区的区别: 一,什么是mysql分表,分区 什么是分表,从表面意思上看呢,就是把一张表分成N多个小表,具体请看: [root@BlackGhost test]# ls |grep user a ...

  4. mysql分区和分表比较_MySQL分区和分表的区别与联系

    一.分区和分表简介 分表 就是将一张大表分成N个小表. 分区 将一张大表的数据分成N个区块,这些区块可以在同一个磁盘上,也可以在不同的磁盘上. 二.分区和分表的区别 1. 实现方式 1.1 分表 My ...

  5. mysql 分区 mycat 分片_Mysql系列六:(Mycat分片路由原理、Mycat常用分片规则及对应源码介绍)...

    一.Mycat分片路由原理 我们先来看下面的一个SQL在Mycat里面是如何执行的: select * from travelrecord where id in(5000001, 10000001) ...

  6. hive静态分区,动态分区,分桶区别

    文章目录 绪论 创建静态分区表 1.准备数据 2.建表语句 3.添加分区,加载数据 4.进入网页(50070)查看 创建动态分区表 1.准备数据 2.建表语句 1.首先创建普通表 2.加载数据 3.创 ...

  7. 本人有一个60G的金士顿的固态硬盘,测了4K分区对齐前后的区别,发现性能相差很大...

    本人有一个60G的金士顿的固态硬盘,测了4K分区对齐前后的区别,发现性能相差很大,不说了,先上图,软件优化和测分软件在下边,有下载的网址: 先上没有4K分区对齐的跑分 注意下图中 31k- BAD, ...

  8. 硬盘主分区和逻辑驱动器的区别

    主分区,也称为主磁盘分区,和扩展分区.逻辑分区一样,是一种分区类型.一个硬盘可以有一个主分区,一个扩展分区,也可以只有一个主分区没有扩展分区.逻辑分区可以若干.主分区是硬盘的启动分区,他是独立的,也是 ...

  9. Linux主分区,扩展分区,逻辑分区的联系和区别

    基本概念 硬盘分区有三种, 主磁盘分区.扩展 磁盘分区. 逻辑分区. 一个 硬盘 主分区至少有1个,最多4个,扩展分区可以没有,最多1个.且 主分区+扩展分区总共不能超过4个. 逻辑分区可以有若干个. ...

最新文章

  1. UIScrollView 的代理方法简单注解
  2. Cocoapods安装过程【转载】
  3. 对话框中加入标签页的5种方法
  4. 配置MYSQL基于GTID 主从复制详细解析及步骤
  5. 成功解决win10下dos中运行tensorboard --logdir=logs和调用events.out.tfevents一闪而过的问题
  6. FPGA学习之路—接口(2)—I2C协议详解+Verilog源码分析
  7. 市值突破3000亿,Fortinet发布2021Q2财报
  8. linux的i o模型,I/O模型的分类及简介
  9. linux工作笔记-linux之间文件传输图形界面工具gftp
  10. JavaWeb项目文件夹生成Zip压缩包并下载到本地
  11. systemtap调试linux内核源码,内核调试工具SystemTap:适合懒人的printk替代品
  12. Jira迁移及内存调整
  13. QTreeView实现圆角样式
  14. Android Studio 配置 NDK 开发编译环境
  15. SpringBoot整合mybatis一直失败差不到数据,解决方案
  16. 嵌入式开发之 STM32自行车码表(图文)
  17. 置信区间 VS 置信水平
  18. Vivado综合running时间太长
  19. python解析FreeMind思维导图
  20. 通信扰码的原理与实现

热门文章

  1. 川职院单招计算机考什么专业,四川单招考什么科目
  2. arcgis批量将栅格里的nodata转为0
  3. 【转】应用架构之道:分离业务逻辑和技术细节
  4. 【转】ABP源码分析二十:ApplicationService
  5. 【转】对称加密和分组加密中的四种模式(ECB、CBC、CFB、OFB)
  6. 【转】VS2005 CTP 版本这个CTP是什么意思
  7. 第七节:语法总结(1)(自动属性、out参数、对象初始化器、var和dynamic等)
  8. SharePoint2010开发最佳实践
  9. python合并单元格 索引_python笔记:纵向合并表格
  10. ffmpeg 截图太模糊了_PPT图片模糊?导师说放大!