在gosql包中,我理解每个语句在执行后应该关闭。为什么有人会使用准备好的语句而不仅仅是原始Query或Exec方法?
2 回答
qq_花开花谢_0
TA贡献1835条经验 获得超7个赞
我认为最好的答案来自关于Prepared Statements的维基百科文章。
引用:
尽管语句执行多次,但编译和优化语句的开销仅发生一次。并非所有优化都可以在编译准备好的语句时执行,原因有两个:最佳计划可能取决于参数的具体值,并且最佳计划可能会随着表和索引的变化而变化。`在此处输入代码
准备好的语句对 SQL 注入具有弹性,因为稍后使用不同协议传输的参数值不需要正确转义。如果原始语句模板不是来自外部输入,则不会发生 SQL 注入。
元芳怎么了
TA贡献1798条经验 获得超7个赞
准备好的语句已经绑定到数据库的具体连接,包含低级 driver.Stmt 并且可以被多个 go-routing 并发使用。所以准备和使用非常方便,而且工作速度更快。
- 2 回答
- 0 关注
- 207 浏览
添加回答
举报
0/150
提交
取消