obproxy如何处理超长请求的SQL

【产品名称】obproxy

【产品版本】all

【问题描述】obproxy如何处理超长请求的SQL,IO缓冲区的大小是有限,当请求长度超过缓冲区大小,那么SQL必然就会要进行两次或更多次IO才能处理完毕,当然obproxy做到超长请求的转发是没有问题的,但对于超长请求的SQL解析是怎么处理的,如果使用lex或yacc分析的话,好像不是连续内存不能分析,如果不对超长请求的SQL处理的话,那么里面如果有一些关键信息是否会错过,比如里面定义了某些变量,游标之类的,或者多语句中间开启了事务之类的,或者一个预处理请求要进行缓存之类的需求。

1 个赞

对于超长请求,obproxy只解析前8k;

obproxy判断语句之间是否开启事务,是否定义变量,并非是靠SQL的解析,而是依赖observer返回的数据包。observer返回的OK包中的信息会包含这个sql是否在事务中,这个sql修改了哪些系统变量

1 个赞