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

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

MySQL水平分区代理Spock Proxy(一)相关推荐

  1. MySQL 水平分区方案Spock Proxy

    Spock Proxy 是由实际项目产生的一个开源项目(Spock是Rails的应用,Speck Proxy应当可用于Rails之外的,例如PHP或.NET),基于MySQL Proxy开发,是MyS ...

  2. mysql 水平分区_MySQL水平分区,垂直分区

    坚信的物理设计在对高级数据库的性能影响上远比其他因素重要.给大家说一下经过专家对Oracle的研究,他们解释了为什么拙劣的物理设计是数据库停机(无论是有计划的还是没计划的)背后的主要原因.但在这点上俺 ...

  3. 1584 mysql_【原创】基于MySQL 水平分区的优化示例

    我们知道,MYSQL 5.1开始支持水平分区功能. 我们来尝试下如何在已经分区的表上面做查询优化. 总体来说,优化的原则和对单独的表做优化是一样的,保证对磁盘上表的扫描次数减小. 我们的表结构如下: ...

  4. mysql水平分区方案_SQL Server表分区(水平分区及垂直分区)

    什么是表分区? 表分区分为水平表分区和垂直表分区,水平表分区就是将一个具有大量数据的表,进行拆分为具有相同表结构的若干个表:而垂直表分区就是把一个拥有多个字段的表,根据需要进行拆分列,然后根据某一个字 ...

  5. 基于Netty的代理工具Proxy

    前言 原文发布于: http://blog.ztgreat.cn/article/51 Netty是一个高性能.异步事件驱动的NIO框架,提供了对TCP.UDP和文件传输的支持,对于目前而言,只要互联 ...

  6. mysql表分区占用存储_MySQL 分区分表应用场景分析和分区中可能遇到的坑点

    MySQL的分区和分表应用场景分析 在日常工作中当我们的某张表的数据量过大的时候,首当其冲的可能就是进行分区和分表,但是是如何分区或者分表都要结合一点的业务场景下进行分析,才会显著的提升性能,来聊一聊 ...

  7. mysql 字符串分区_Mysql分区表的原理和优缺点

    分区表的原理 分区表是由多个相关的底层表实现,这些底层表也是由句柄对象表示,所以我们也可以直接访问各个分区,存储引擎管理分区的各个底层表和管理普通表一样(所有的底层表都必须使用相同的存储引擎),分区表 ...

  8. mf怎么使mysql信息分区_细聊MySQL的分区功能

    此篇主要介绍下MySQL的分区功能.我们分别从分区的概念.分区对于MySQL应用的优点.分区的类别及设置来和大家一起探讨下MySQL的分区. 什么是分区? MySQL在未启用分区功能时,数据库的单个表 ...

  9. mysql建立 分区_MySQL-mysql分区合理建立

    MySQL从5.1.3开始支持Partition,MySQL支持RANGE,LIST,HASH,KEY分区类型,主要还是根据业务来选择分区类型. 水平分区的几种模式: 1.Range(范围) - 这种 ...

最新文章

  1. 10亿级数据规模的半监督图像分类模型,Imagenet测试精度高达81.2% | 技术头条...
  2. Linux下的一些问题收集及解决方法(二)
  3. Vue2.x中vuex的使用方法及应用时的项目文件结构设计以完整demo实例解释
  4. MySQL主键和外键使用及说明
  5. 怎么把echarts中折线里面的其中两点连接成一条线_新手怎么写好一个策划案?三个小捣蛋,一个策划案!...
  6. 为VIP解决问题时写的源码
  7. USB Host读取U盘成功
  8. Python 机器学习经典实例
  9. 4款开源中文分词系统。
  10. 英雄联盟游戏结束后显示与服务器失去连接,英雄联盟游戏被终止连接不上解决方法...
  11. python爬虫框架教程_python爬虫框架有哪些
  12. excel熵值法计算权重_由搜索权重排序引入的思考
  13. 什么是HikariCP?HikariCP介绍(包含配置示例)
  14. 新手在Kail Linux中使用pdfcrack 来破解pdf密码
  15. QT跨平台使用libvlc播放视频
  16. python绘制箭头_python如何绘制坐标箭头?
  17. Ubuntu在线音乐盒-亦歌
  18. Hive内表和外表的区别
  19. HTML5+CSS3小实例:流星划过天际的动画效果
  20. 完整的struts2框架应用实例

热门文章

  1. C++ 类的知识 | 构造函数再探、匿名对象、友元函数、内部类、类的const成员、类的static成员
  2. Git(12)-stash, reflog
  3. 如何查询oracle最近报警信息,教你怎样用Oracle方便地查看报警日志错误
  4. java placeholder_java – 如何在JTextfield中设置像Placeholder一样的文本
  5. 密码学专题 证书和CA指令 证书和CA功能概述
  6. STL源码剖析 list概述
  7. codeforces 282A-C语言解题报告
  8. 写代码前的准备,你做好了吗?
  9. 视频测试序列下载:YUV文件
  10. 学习方法书籍 很好推荐