# 背景

今天同事分享的主题就是mysql-proxy,于是下来自己了解下,不求精通,只求知道这个玩意

# 简介

mysql-proxy是mysql官方提供的mysql中间件服务,上游可接入若干个mysql-client,后端可连接若干个mysql-server。

它使用mysql协议,任何使用mysql-client的上游无需修改任何代码,即可迁移至mysql-proxy上。

mysql-proxy最基本的用法,就是作为一个请求拦截,请求中转的中间层:

进一步的,mysql-proxy可以分析与修改请求。拦截查询和修改结果,需要通过编写Lua脚本来完成。

mysql-proxy允许用户指定Lua脚本对请求进行拦截,对请求进行分析与修改,它还允许用户指定Lua脚本对服务器的返回结果

进行修改,加入一些结果集或者去除一些结果集均可。

所以说,根本上,mysql-proxy是一个官方提供的框架,具备良好的扩展性,可以用来完成:

  • sql拦截与修改

  • 性能分析与监控

  • 读写分离

  • 请求路由

# 用途

1. 分享的同事使用proxy的目的是,因为测试环境碰到了测试/开发同学不小心全表update/delete操作,导致测试数据异常,从而影响项目进度,于是他接入mysql-proxy对sql语句进行了拦截检查,并可以将sql语句发送到DBA提供的一个sql review服务中去判断sql语句是否有问题
2. 之前还有这么一段经历,之前订单经过拆库操作,订单表分为了128个库,是根据订单号去拆库的,然而不是所有的表都有订单号(历史架构的锅),如有个需求是根据手机号码去查询订单号,导致要遍历查询128去判断是否存在,那么就需要proxy介入,当时使用的是阿里的mycat中间件

# 不足

由于加入了一层proxy会导致网络请求的增加消耗,所以性能造成一定的影响;

最新文章

  1. ListActivity的CheckBox点击事件
  2. 转-Nmap扫描原理与用法
  3. 【巩固】JS获取时间的一些基础知识
  4. [Android实例] 有关spinner 的item问题 谁能给解答下??
  5. Cwinux源码解析(二)
  6. CodeForces Round 192 Div2
  7. input 字符限制
  8. 【转】准确理解CSS clear:left/right的含义及实际用途
  9. Oracle基础 事务
  10. WIN7系统操作快捷键
  11. Unity GUI 用C#和Javascript写法的区别
  12. Some good questions
  13. Python一些字符串判断和转换
  14. CGLIB 动态代理的实现
  15. inline-block元素间留白现象探究
  16. strings.h 与 string.h 头文件的区别
  17. (一二三)基于GCD的dispatch_once实现单例设计
  18. Django入门三之urls.py重构及参数传递
  19. solr window环境安装配置和管理页面基本使用
  20. 杜伦大学提出GANomaly:无需负例样本实现异常检测

热门文章

  1. IDEA使用笔记(十一)——好玩的类图结构
  2. python 验证码识别示例(一) 某个网站验证码识别
  3. Android 开发笔记
  4. Atitit s2018 s3 doc list alldvc.docx .docx s2018 s3f doc compc s2018 s3f doc homepc sum doc dvcCompc dtS312 s2018 s3f doc compc\Atitit PathUtil 工具新特性新版本 v8 s312.docx s2018 s3f doc compc\Atitit 操作日
  5. Cocos 更新时反复杀进程,导致差异更新失效的Bug
  6. Sublime Text 输入法跟随光标
  7. Git入门到高级系列2-git高级操作
  8. 100BASE-TX、100Base-FX等含义
  9. Halcon 彩色图片通道分割处理
  10. Android开发怎么让自己的APP UI漂亮、大方(配色篇二)