对语法树进行参数化

传统数据库在进行参数化时一般是对语法树进行参数化,然后使用参数化后的语法树作为键值在计划缓存中获取计划。

请问:对语法树进行参数化, 怎么理解?

比如select * from test where c1=1 → select * from test where c1=? ,即将sql语句中的常量参数化,然后这个问题应该来想了解快速参数化?其实一些场景下只需要一个参数化后的sql去处理,ob基于lex/yacc实现针对整个sql层的token的状态转换开销大,也就是说传统的parser需要识别出所有的token, 但fast parser 只需要识别出sql中应该被忽略的部分、应该被原样保留的部分、以及应该被参数化的常量部分。

为了您的提问能更好的帮助到其他用户,请根据社区指南优化提问标题: