分区和分片

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

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

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

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

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

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

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

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

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

master_0 和 slave_0

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

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

就像 Shard_A_Range_0_100

Example #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": []

}

}

}

Example #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网站分区,PHP - Manual: 分区和分片 (官方文档)相关推荐

  1. manual 离线手册 韩顺平php_PHP - Manual: 手册的格式 (官方文档)

    手册的格式 <PHP 参考手册>提供了多种不同格式的版本,它们可以分为两组:在线阅读版本和可下载打包版本. Note: 有些出版商可能已经出版了本手册的一些印刷版本.不推荐印刷版,因为 P ...

  2. cassandra 3.x官方文档(4)---分区器

    写在前面 cassandra3.x官方文档的非官方翻译.翻译内容水平全依赖本人英文水平和对cassandra的理解.所以强烈建议阅读英文版cassandra 3.x 官方文档.此文档一半是翻译,一半是 ...

  3. manual php,PHP - Manual: 介绍 (官方文档)

    介绍 为了在 PHP 核心中使用变量,就必须要学会 PHP 所使用的基本概念的差异.首先,PHP 是一门动态的弱类型语言.其次,PHP 的写机制里会使用内存处理的引用计数的复本.请查阅引用计数基本知识 ...

  4. php怎么写官网,PHP - Manual: 简介 (官方文档)

    简介 pthreads 是一组允许用户在 PHP 中使用多线程技术的面向对象的 API. 它提供了创建多线程应用所需的全套工具. 通过使用 Thread, Worker 以及 Threaded 对象, ...

  5. php安装文档,PHP - Manual: 安装 (官方文档)

    安装 安装此 PECL 扩展相关的信息可在手册中标题为 PECL 扩展的安装章节中找到.更多信息如新的发行版本.下载.源文件. 维护人员信息及变更日志等,都在此处: » https://pecl.ph ...

  6. cubrid php,PHP - Manual: CUBRID (官方文档)

    cubrid_bind - Bind variables to a prepared statement as parameters cubrid_close_prepare - Close the ...

  7. php zlib decompress,PHP - Manual: Phar::decompress (官方文档)

    说明 public Phar::decompress ([ string $extension ] ) : object Note: 此方法需要 将 php.ini 中的 phar.readonly ...

  8. php trader bbands,PHP - Manual: Trader 函数 (官方文档)

    trader_acos - Vector Trigonometric ACos trader_ad - Chaikin A/D Line trader_add - Vector Arithmetic ...

  9. posix官方文档在线网站

    https://pubs.opengroup.org/onlinepubs/7908799/index.html

最新文章

  1. 史上曾被认为不可能的十大科学难题全被实现
  2. java 视频 缩略图_Java截取视频文件缩略图
  3. 厉害了!SpringBoot是如何动起来的!
  4. python基础对list的增删查改和列表的排序
  5. leetCode题解之Jewels and Stones
  6. 关于女人强势表现和强势心理
  7. 自动化测试特定区域滑动_自动化用户特定实体的访问控制
  8. python numpy ndarray之basic operations
  9. java 编译class_.java文件怎样编译成.class文件,你值得一看的技巧
  10. 海南小地图(echart)
  11. 虚拟机vm安装 黑群晖 DS3617xs 6.2
  12. Python美女图片爬虫实战
  13. 小心!使用网页版的WhatsApp时,请选择隐私模式
  14. acs代表什么_思科的ACS是什么?
  15. linux 设置创建用户设置密码
  16. 如何提高推荐量?新手必知 头条号推荐机制
  17. 2020微信设置2小时到账或24小时到账
  18. 这社会并不是靠努力和辛苦赚钱的
  19. hbuilder配置浏览器 设置编辑器默认浏览器
  20. 【云原生】还不会使用linux?快看这里,在window快速安装centos系统

热门文章

  1. 分类树/装袋法/随机森林算法的R语言实现
  2. LAMP平台下构建Postfix邮件服务器
  3. Windows Server 2003 R2与SP2 的区别
  4. Cisco路由器故障诊断技术(3)
  5. Matplotlib中的“ plt”和“ ax”到底是什么?
  6. 数据分析中的统计概率_了解统计和概率:成为专家数据科学家
  7. 个人项目api接口_5个免费有趣的API,可用于学习个人项目等
  8. 1137. 第 N 个泰波那契数
  9. 分布与并行计算—生产者消费者模型RabbitMQ(Java)
  10. leetcode 188. 买卖股票的最佳时机 IV(dp)