OneProxy的功能与限制
数据库中间件的核心目的之一就是尽可能透明的线性扩展数据库能力。其主要功能介绍参考(http://www.onexsoft.com/zh/oneproxy.html)。 但是透明只是相对的,下面就简要叙述OneProxy的每个功能点及其限制。
1、透明连接池,
a)不支持使用“use”命令来切换当前数据库, 出于性能考虑,我们不想在每次取得连接或归还连接时进行还原,这个操作需要一次额外的网络IO;如果要访问不同数据库下的表,请使用不同的用户进行连接(不同用户可提定不同的默认数据库),或者在表名前面加上库名进行访问(比如:db.tablename)。
b)不支持set命令,但除“set autocommit={0|1}”外,因为这些操作会影响会话的上下文,除非放在事务中(由开发人员自己负责)。
c)不支持带传出参数的存贮过程调用,实际上是通过执行几句“SET”语句来声明会话级变量,以进行参数传递的,如果不在一个事务中,则不同的调用就不能保证使用的是同一个连接了(除非放在事务中),故而OneProxy默认禁止存贮过程调用。
d)不支持客户端级别和服务器端级别的Prepared接口,因为绑定变量及语句都是会话级别的。请不用担心,MySQL JDBC驱动本身就不是真正的Prepared接口的(除非显式指定了“useServerPrepStmts”参数);针对PHP PDO编程接口,请在连接数据库时指定“ATTR_EMULATE_PREPARES”选项,使用拼接SQL的方式进行底层交互(并不会影响安全性,增加SQL注放攻击的概率)。对于Web应用来讲连接池相对更重要,并且使用真正的Prepared接口需要更多的网络调用来完成一个SQL来回,并不利于性能。
2、自动故障切换
3、读写分离
4、水平分库分表
a)不支持多列分区,分区键只支持单个列,分区和子分区的列可以不同。这个限制可以让中间件的分区定位代码更加高效。
b)分区键的值必须是常量,在SQL中为分区键指定值是必须是明确的值,不能是函数或表达式。
c)分区键不支持OR语句,其允许单值查找(“where pkey = xxx”),可以是多值列表比较(“where pkey in (1,2,3)”),或区间查找(“where pkey >; … and pkey & <; …”,包括“between”操作)。但不支持多个“or”条件(“where pkey = 1 or pkey = 2”)。
d)分区键不允许为空,并且不应当被程序后续更新, OneProxy无法检测出更新后的目标值是否符合分区配置,也不支持分区之间的记录移动。
e)对于“insert”和“replace”语句,请显式指定字段列表,例如:“insert into xxx (col1, col2,…) values (…,…)”。
分区键类型可以是“int”、 “char”、 “date”或“timestamp”中的一种,其中“date”表示不含时间信息的日期(如“2015-11-11”),而“timestamp”表示带时间的日期(如“2015-11-11 00:00:00”)。
5、结果集合并
a)临时结果集有大小限制,目前是100万行,以避免用完内存,可以通过“proxy-cache-rows”选项进行调整。
b)不支持count distinct,对某个字段统计维一值个数(“count(distinct …)”)的操作。
c)不支持avg,对字段求平均值(”avg(…)”)不被直接支持,请转换成计数(“count(…)”)和求和(“sum(…)”)两个操作,再作除法。
d)不支持having不支持分组汇总下的“having xxx”条件过滤。
e)不支持跨实例join。
f)跨库关联查询,仅仅支持按相同维度分表的分表。
6、并行查询
a)仅支持拆分的表
7、安全控制和SQL审计
8、SQL防火墙
9、OneProxy自身高可用
a)需要依赖VIP
10、分布式sequence
11、SQL关联度分析
12、事务监控
OneProxy的功能与限制的更多相关文章
- MySQL基础普及《MySQL管理之道:性能调优、高可用与监控》
最近工作的内容涉及MySQL运维内容,陆陆续续读了几本相关的书,其中一本是<MySQL管理之道:性能调优.高可用与监控>. 内容涵盖性能调优(包括sql优化等).备份.高可用,以及读写分离 ...
- MySQL管理之道,性能调优,高可用与监控(第二版)pdf下载
MySQL管理之道,性能调优,高可用与监控(第二版) 书中内容以实战为导向,所有内容均来自于笔者多年实践经验的总结和新知识的拓展,同时也针对运维人员.DBA等相关工作者会遇到的有代表性的疑难问题给出了 ...
- OneProxy自动剔除延迟节点
在多种情况下,MySQL主从节点之间可能存在延迟.比如,主库的写入能力强于从库的写入能力.从库单线程复制.从库复制出错导致相关进程停止.为了保证数据的时效性,OneProxy提供了复制时效性检查,用于 ...
- 使用分布式数据库集群做大数据分析之OneProxy
一.十亿数据,轻松秒出 实时监控领域有两个显著的特点,一是数据来源很多而且数据量大,有来自监控摄像头.GPS.智能设备等:二是需要实时处理.我们的客户在做实时处理时,就遇到这样的问题.客户的某个数据表 ...
- OneProxy主从延迟检测
OneProxy具有主从延迟检测功能,检测方式有两种. 1.通过MySQL本身提供的延迟信息,即在从库中执行show slave status; 查看Seconds_Behind_Master值: 2 ...
- OneProxy分库分表演示--楼方鑫
OneProxy分库分表演示 (杭州平民软件有限公司) OneProxy是为MySQL精心设计的数据访问层,可以为任何开发语言提供对MySQL数据库的智能数据路由功能,比如单点切换.读写分离.分库分表 ...
- OneProxy使用手册--致力于打造透明的数据层
介绍 平民软件官网上线(http://www.onexsoft.com) OneProxy是由原支付宝首席架构师楼方鑫开发,目前由楼方鑫创立的杭州平民软件公司(@平民架构)提供技术支持.目前 ...
- ProxySQL 配置详解及读写分离(+GTID)等功能说明 (完整篇)
ProxySQL是灵活强大的MySQL代理层, 是一个能实实在在用在生产环境的MySQL中间件,可以实现读写分离,支持 Query 路由功能,支持动态指定某个 SQL 进行 cache,支持动态加载配 ...
- OneProxy构建
OneProxy的主要功能有:1. 垂直分库 2. 水平分表 3. Proxy集群 4. 读高可用 5. 读写分离(master不参与读) 6. 读写分离(master参与读) 7. 写高可用 8. ...
随机推荐
- Maven-006-手动部署第三方构件至 nexus 私服
某些 Java 构件因许可证因素,无法公开的部署到公共仓库中:或者,一些小型的开源项目(例如 SourceForge.GitHub 中的一些项目),没有将构件分发到中央仓库中,也没有维护自己的仓库,因 ...
- 记录一次项目中使用memcatch添加端口以及自动运行
具体原因:多个项目同时使用一个memcatch服务情况需要分别为项目添加端口,如果只有一个项目使用则不需要去修改端口(memcatch有默认端口),当然已可以去修改默认端口. 下面我记录下我自己的使用 ...
- IEnumerable、GetEnumerator、IEnumerator的理解
概念文字性的东西,我们就不说了,这里我们来点具体的实例第呀: 实例一: using System; using System.Collections; using System.Collections ...
- mongoDb(2)聚合
1.mongodb的聚合是有专门的一个方法的.
- Mysql数据库优化
to be add... --------------------------------------------------------------------------------------- ...
- Java Servlet(六):HttpServlet实现原理(jdk7+tomcat7+eclipse)
本篇记录了HttpServlet的实现过程,主要讲述了如何依赖Servlet,GenericServlet实现的原理. HttpServlet实现过程:1.是一个Servlet,继承自GenericS ...
- js onmouseleave
onmouseleave no propagation onmouseout will propagation
- 17. 星际争霸之php设计模式--职责链模式
题记==============================================================================本php设计模式专辑来源于博客(jymo ...
- Openstack命令行创建不同vlan段虚拟机
默认使用nova-network的vlan模式,但是在使用默认的dashboard的时候,不能指定创建的虚拟机的使用网段,固定IP地址. 实际上该功能是在存在的,只是openstack的dashbbo ...
- HTML5 UI框架Kendo UI Web中如何实现Grid网格控件本地化
Kendo UI Web包含数百个创建HTML5 web app的必备元素,包括UI组件.数据源.验证.一个MVVM框架.主题.模板等. 为了使得产品可以符合不同市场的本地化需求和语言,Kendo U ...