分区和分片的区别_PHP: 分区和分片 - Manual

分区和分片

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

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

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

插件可以支持各种各样的 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

中进行。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/445918.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Ubuntu安装GmSSL库适用于ubuntu18和ubuntu20版本

参考链接 编译与安装【GmSSL】GmSSL 与 OpenSSL 共存的安装方法_阿卡基YUAN的博客-CSDN博客_openssl和gmssl在Linux下安装GmSSL_百里杨的博客-CSDN博客_安装gmssl ubuntu18操作 需要超级管理员权限本人将下载的安装包master.zip和安装的位置都设定在/usr/local下创建文件夹/u…

Windows7右键菜单栏添加打开cmd项

背景简介 众所周知,在Linux桌面操作系统中的工作目录窗口中,单击鼠标右键,弹出的菜单栏通常有一项“打开终端”,然后移动鼠标点击该项,就可以打开Shell窗口,在当前工作目录进行命令行操作。 但是&#xf…

python11_Python11,文件操作

整了这么多杂七杂八又“没用”的,终于来点实际的操作了。Python中用open()方法来对打开文件。我们来看看它的用法:path "C:\\Users\Frank\Desktop\\text.txt"f open(path,r,encoding"utf-8")首先给变量path指定一个路径&#xff0…

在ubuntu环境下执行openssl编译和安装

参考链接 工具系列 | Ubuntu18.04安装Openssl-1.1.1_Tinywan的技术博客_51CTO博客密码学专题 openssl编译和安装_MY CUP OF TEA的博客-CSDN博客_openssl 编译安装 下载 /source/index.html编译 使用命令sudo tar -xvzf openssl-1.1.1q.tar.gz 解压。使用cd openssl-1.1.1q/进…

chrome 使用gpu 加速_一招解决 Chrome / Edge 卡顿缓慢 让浏览器重回流畅顺滑

最近一段时间,我发现电脑上的 Chrome 谷歌浏览器越用越卡了。特别是网页打开比较多,同时还有视频播放时,整个浏览器的响应速度都会变得非常缓慢,视频也会卡顿掉帧。 我用的是 iMac / 32GB 内存 / Intel 四核 i7 4Ghz CPU,硬件性能应该足以让 Chrome 流畅打开几十个网页标签…

CLion运行程序时添加命令行参数 即设置argv输入参数

参考链接 CLion运行程序时添加命令行参数_三丰杂货铺的博客-CSDN博客_clion命令行参数 操作流程 Run -> Edit -> Configuration -> Program arguments那里添内容最快捷的方式是,点击锤子编译图标和运行图标之间的的图标,进行Edit Configurati…

python的userlist_Python Collections.UserList用法及代码示例

Python列表是array-like数据结构,但与之不同的是它是同质的。单个列表可能包含数据类型,例如整数,字符串以及对象。 Python中的列表是有序的,并且有一定数量。根据确定的序列对列表中的元素进行索引,并使用0作为第一个…

解决 SSL_CTX_use_certificate:ca md too weak:ssl/ssl_rsa.c 问题

报错原因分析 原因是openssl调整了安全级别,要求ca具备更高等级的安全,因此先前发布的证书,如果采用了不安全的算法,比如MD5,就会显示上述这个错误 解决办法 重新生成证书,先前证书弃用使用函数 SSL_CTX_…

向上滚动 终端_ubuntu

Ubuntu终端Terminal常用快捷键Ubuntu终端Terminal常用快捷键 快捷键 功能 Tab 自动补全 Ctrla 光标移动到开始位置 Ctrle 光标移动到最末尾 Ctrlk 删除此处至末尾的所有内容 Ctrlu 删除此处至开始的所有内容 Ctrld 删除当前字符 Ctrlh 删除当前字符前一个字符 Ctrlw 删除此处到…

openssl实现双向认证教程(服务端代码+客户端代码+证书生成)

参考链接 openssl实现双向认证教程(服务端代码客户端代码证书生成)_huang714的博客-CSDN博客_ssl_ctx_load_verify_locations基于openssl实现https双向身份认证及安全通信_tutu-hu的博客-CSDN博客_基于openssl实现 注意事项 openssl版本差异很可能导致程…

python用pip安装pillow_cent 6.5使用pip安装pillow总是失败

python:2.7.8阿里云cent os32位virtualenvvirtualenvwrapper之前有一个virtualenv不知道怎么回事成功装上了pillow之后再在别的virtualenv装就全都报错这是为什么 太奇怪了?下载whl安装,不管哪个版本都说不支持这个系统。imaging.c:3356: error: expected ?.?. ?…

基于openssl和国密算法生成CA、服务器和客户端证书

参考链接 国密自签名证书生成_三雷科技的博客-CSDN博客_国密证书生成openssl采用sm2进行自签名的方法_dong_beijing的博客-CSDN博客_openssl sm 前提说明 OpenSSL 1.1.1q 5 Jul 2022 已经实现了国密算法查看是否支持SM2算法openssl ecparam -list_curves | grep -i sm2参考…

h5获取http请求头_React 前端获取http请求头信息

背景:前端通过react渲染页面,使用了react-slingshot,相当于是前端跑在一个node服务上面需求:需要通过客户端通过HTTP请求传递来的参数(header里放了token)进行用户权限的验证,比如访问http://localhost:3000/rights/1,…

基于Gmssl库静态编译,实现服务端和客户端之间的SSL通信

前情提要 将gmssl库采取静态编译的方式&#xff0c;存储在/usr/local/gmssl路径下&#xff0c;核心文件涵盖 include、lib和bin等Ubuntu安装GmSSL库适用于ubuntu18和ubuntu20版本_MY CUP OF TEA的博客-CSDN博客 代码 server #include <stdio.h> #include <stdlib.h&g…

禅道备份功能_更新禅道燃尽图及数据备份

Last login: Fri May 29 13:52:16 on ttys000mazhenguodeMacBook-Pro:~ mazhenguo$ ssh root192.168.1.2 //登录服务器root192.168.1.2’s password: //输入服务器密码Last login: Fri May 29 13:52:20 2015 from 192.168.1.251[rootmazhenguo ~]# cd /home/app/192.168.1.2/ze…

基于SM2证书实现SSL通信

参考链接 ​​​​​基于openssl和国密算法生成CA、服务器和客户端证书_MY CUP OF TEA的博客-CSDN博客基于上述链接&#xff0c;使用国密算法生成CA、服务器和客户端证书&#xff0c;并实现签名认证openssl实现双向认证教程&#xff08;服务端代码客户端代码证书生成&#xff…

列宽一字符等于多少厘米_Excel中行高与列宽单位和厘米的转换

Excel中行高、列宽尺寸的换算一、先说明一下度量单位的相互换算关系&#xff1a;磅&#xff1a;指打印的字符的高度的度量单位。1 磅近似等于 1/72 英寸&#xff0c;或大约等于 1/28.35 厘米。英寸&#xff1a;1英寸近似等于 2.54 厘米。像素&#xff1a;与显示解析度有关&…

使用Clion软件实现基于国密SM2-SM3的SSL安全通信

参考链接 Ubuntu安装GmSSL库适用于ubuntu18和ubuntu20版本_MY CUP OF TEA的博客-CSDN博客CLion运行程序时添加命令行参数 即设置argv输入参数_MY CUP OF TEA的博客-CSDN博客基于SM2证书实现SSL通信_MY CUP OF TEA的博客-CSDN博客基于Gmssl库静态编译&#xff0c;实现服务端和客…

基于GmSSL实现server服务端和client客户端之间SSL通信代码(升级优化公开版)

参考链接 工程搭建介绍 Ubuntu安装GmSSL库适用于ubuntu18和ubuntu20版本_MY CUP OF TEA的博客-CSDN博客CLion运行程序时添加命令行参数 即设置argv输入参数_MY CUP OF TEA的博客-CSDN博客基于SM2证书实现SSL通信_MY CUP OF TEA的博客-CSDN博客基于Gmssl库静态编译&#xff0c…

easyui 表头合并_JQuery EasyUI DataGrid动态合并(标题)单元) 一

JS&#xff1a;/*** EasyUI DataGrid根据字段动态合并单元格* param fldList 要合并table的id* param fldList 要合并的列,用逗号分隔(例如&#xff1a;"name,department,office");*/function MergeCells(tableID, fldList) {var Arr fldList.split(",");…