MySQL水平分区代理Spock Proxy(一)

为什么80%的码农都做不了架构师?>>>   hot3.png

MySQL水平分区代理Spock Proxy 水平分区(sharding)将同一数据表中的数据通过特定的算法进行分离,分别保存在不同的数据表中,从而部署到不同的数据库服务器上。 水平分区后,数据拆分到不同的服务器上,面临的最重要的问题是应用程序如何正确的找到它们。可以通过使用Spock Proxy来帮助应用程序实现水平分区的访问调度。意味着不需要在应用程序中维护那些分区对应关系。 Spock Proxy项目:http://spockproxy.sourceforge.net/   一.Spock Proxy介绍 1.Spock Proxy支持基于水平范围分区(range-based horizontal partioning)。将单个数据库分片到多个,以提高性能和可扩展性。 2.从客户端截取SQL语句,将查询发送到正确分区数据库服务器上,然后聚集从每个数据库查询到的结果返回给客户端,作为一个普通的MySQL结果集。 3.对应用程序透明,避免修改应用程序。 4.Spock基于Rails和ActiveRecord。Spock Proxy基于MySQL Proxy开发,是MySQL Proxy的一个分支。对MySQLProxy做的改进有: a.不使用lua脚本。提升性能,多个数据库返回的结果合并需要与lua脚本交互,开销大。 b.客户端登陆验证。MySQL Proxy支持客户端与各个服务器直接进行登录验证。而Spock Proxy统一管理,分离客户端与服务器的连接。自动验证客户端使用的用户名/密码(启动spockproxy指定的). c.动态连接池。Spock Proxy分离客户端与服务器的连接,允许最小和最大连接数的管理。spockproxy启动后建立了一个连接池的最小连接数。 d.多服务器发送/接收。请求发送到多台服务器上。为了确保速度,所有的请求广播一次,异步执行读操作。当从每个服务器获取结果完成后,如果计数器大于1,将执行合并操作。如果只有一个结果集,数据将被自动转发给客户端。如果从任何一个数据库返回任何错误,错误将会被发送到客户端。 5.Spock Proxy架构图 二.Spock Proxy局限性 并非所有支持MySQL的查询完全支持Spock Proxy。当spockproxy解析查询语句失败,调用端将得到一个错误。 已知的限制有: 1.SQL管理语句,如create。 2.支持有限的存储过程和事务。 3.跨数据库的join操作无法执行。 4.不支持嵌套查询。 5.对于SELECT ,支持最多2表联接。但不支持GROUP BY。 6.对于INSERT,列清单总是预期。 7.如果查询涉及多个分区中的数据,对于查询使用mysql函数,只支持MAX, MIN, SUM, AVERAGE 函数。 8.不正确的INSERT_ID和分裂一个自动递增的主键与外键的表,ID冲突是可能的。 9.LOAD DATA INFILE没有测试。

转载于:https://my.oschina.net/766/blog/211489

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

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

相关文章

OO第四单元作业

1.作业的架构设计 (1)对于第一次作业中,要求我们实现关于类图的查询指令。 在这次作业中,主要采用的储存方法是哈希表。 在查询方法上,大多数要求诸如共有多少类等,利用哈希表进行查询即可。 比较困难的一些…

利用 git 提交代码、git 简单使用(拉取、推送、分支、合并)

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 1.安装 git sudo apt-get install git 2.查看版本: git --version 我的版本信息: 3. 配置用户名和邮箱 : …

如何在android studio中设置sdk path?

为什么80%的码农都做不了架构师?>>> Press F4 into Project StructureLeft > SDKsPress , add another sdk转载于:https://my.oschina.net/itfanr/blog/195714

OpenCL的安装与配置

Windows 步骤 1:在 http://developer.amd.com/pages/default.aspx根据相应的操作系统,下载最新的 AMD driver, AMD APP SDK。AMD APP SDK目前支持Windows VISTA[32][64]bit,Windows 7[32][64]bit操作系统。 步骤 2:如果已经安装了…

解决:java.lang.IllegalStateException: ApplicationEventMulticaster not initialized

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 1. springboot 项目启动时报错: java.lang.IllegalStateException: ApplicationEventMulticaster not initialized - call …

面试官问我:平常如何对你的 Java 程序进行调优?

阅读本文大概需要 10 分钟。作者:张俊城, 郭理勇, 刘建来源:http://t.cn/AiCTERJzJava 应用性能优化是一个老生常谈的话题,典型的性能问题如页面响应慢、接口超时,服务器负载高、并发数低,数据库频繁死锁等。尤其是在“…

c语言—变量

变量 存储类型auto register static extern 变量在内存空间中的首地址&#xff0c;称为变量的地址。 变量的定义形式&#xff1a;<存储类型> <数据类型> <变量名> 存储类型&#xff1a;auto register static extern auto (不写默认是auto)局部变量auto 变量的…

Servlet的入门

什么是Servlet? Servlet是运行在服务端的java小程序,是sun公司提供的一套规范,用来处理客户端请求.响应给浏览器的动态资源.Servlet是JavaWeb三大组件之一(Setvlet.Filter.Listener),且最重要. Servlet的作用? 用来处理从客户端发送过来的请求,并对该请求做出响应. Servlet的…

快速部署ldap服务

快速部署ldap服务 作者&#xff1a;尹正杰 版权声明&#xff1a;原创作品&#xff0c;谢绝转载&#xff01;否则将追究法律责任。 一.LDAP概述 1.什么是目录服务(1)目录是一类为了浏览和搜索数据二十几的特殊的数据库&#xff0c;例如&#xff1a;最知名的的微软公司的活动目录…

linux7 配置mysql5.7字符集编码

linux 安装后 mysql5.7 字符集默认是拉丁&#xff0c;不能存储中文&#xff0c;修改步骤如下&#xff1a; 在 vim /etc/mysql/my.cnf 修改配置文件 在[mysqld] 下添加如下配置 character-set-serverutf8 init_connectSET NAMES utf8 重启mysql服务 systemctl restart mysqld.…

解决:java.io.IOException: invalid constant type: 15

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 启动 dubbo 服务报错&#xff1a; java.io.IOException: invalid constant type: 15 我的情况是项目本身 是用的1.7 。而我自己用的…

Ubuntu下使用AMD APP编写OpenCL程序

对于Ubuntu或其近亲&#xff08;Lubuntu、Kubuntu、Mint等&#xff09;编写OpenCL程序也不会太难。由于本例用的是AMD APP SDK&#xff0c;因此需要AMD的GPU以及相关驱动。首先&#xff0c;去AMD官网下载GPU驱动——AMD Catalyst。如果你用的是APU并且还有一块独立显卡的话&…

搭建Vue脚手架(vue-cli)并创建一个项目

1、 安装nodejs环境 官网下载&#xff1a;https://nodejs.org/en/download/ 一直默认就行&#xff0c;路径可以改变但要记得到 安装完成后cmd&#xff0c;输入node -v ,npm -v 如果能看到node和npm的版本号了&#xff0c;说明已经安装成功 2、安装vue-cli 有npm和cnpm两种方式…

RabbitMQ学习总结(5)——发布和订阅实例详解

2019独角兽企业重金招聘Python工程师标准>>> 一、Publish/Subscribe&#xff08;发布/订阅&#xff09;&#xff08;using the Java Client&#xff09; 在前面的教程中,我们创建了一个work Queue&#xff08;工作队列&#xff09;。工作队列背后的假设是每个任务是…

iOS有哪些数据类型/基本数据类型?

简述 本文主要探究使用OC作为iOS开发语言时&#xff0c;我们能使用哪些数据类型。 一切类型始于C。 C语言的类型 基本数据类型&#xff1a; 基本数据类型&#xff08;fundamental data types&#xff09;也叫原始数据类型&#xff08;primitive data types&#xff09; 整型、字…

马桶怎么清洗才干净无异味?

方法/步骤 在马桶水箱中一定要放上洁厕宝&#xff1a; 洁厕宝里面含有多种去除马桶中杂质以及异味的功能&#xff0c;另外它还带有香香的味道&#xff0c;我们一按冲马桶的按钮&#xff0c;放出来的总是蓝色的水&#xff0c;十分的美观和好看&#xff0c;但是这并不是花瓶般的作…

Mysql学习总结(8)——MySql基本查询、连接查询、子查询、正则表达查询讲解...

2019独角兽企业重金招聘Python工程师标准>>> 查询数据指从数据库中获取所需要的数据。查询数据是数据库操作中最常用&#xff0c;也是最重要的操作。用户可以根据自己对数据的需求&#xff0c;使用不同的查询方式。通过不同的查询方式&#xff0c;可以获得不同的数据…

Node.js -- Stream 使用小例 ( 流运用 :读取、写入、写出、拷贝)

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 Stream 是一个抽象接口&#xff0c;Node 中有很多对象实现了这个接口。例如&#xff0c;对http 服务器发起请求的request 对象就是一个 …

学会用好 Visual Studio Code

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 Visual Studio Code是个牛逼的编辑器&#xff0c;启动非常快&#xff0c;完全可以用来代替其他文本文件编辑工具。又可以用来做开发&…

Maven学习总结(五)——聚合与继承

2019独角兽企业重金招聘Python工程师标准>>> Maven学习总结(五)——聚合与继承 一、聚合 如果我们想一次构建多个项目模块&#xff0c;那我们就需要对多个项目模块进行聚合 1.1、聚合配置代码 1 <modules> 2 <module>模块一</module> 3 …