


























这是在做 Golang 项目中的一些实践

interpolateparams=false

interpolateparams=true

10261 -> 12117, 18%
prepared -> execute -> close
正常带占位符的sql执行过程:
好处:
execute -> close
interpolateparams=true执行流程: execute -> close
好处:
prepared网络请求


prepared, err := mc.interpolateParams(query, args)
if err != nil {
return nil, err
}
query = prepared
如果query替换成功, 直接执行 writeCommandPacketStr, 并且读取返回值, return (rows, err)
mc.interpolateParams中, 对string/[]byte等做了转义, prepared是插值后的sql

此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。