猿问
回到首页
个人中心
反馈问题
注册登录
下载APP
首页
课程
实战
体系课
手记
专栏
慕课教程
为什么在 go sql 包中使用准备好的语句而不是 Query / Exec?
在go
sql
包中,我理解每个语句在执行后应该关闭。为什么有人会使用准备好的语句而不仅仅是原始
Query
或
Exec
方法?
弑天下
浏览 208
回答 2
2回答
qq_花开花谢_0
我认为最好的答案来自关于Prepared Statements的维基百科文章。引用:尽管语句执行多次,但编译和优化语句的开销仅发生一次。并非所有优化都可以在编译准备好的语句时执行,原因有两个:最佳计划可能取决于参数的具体值,并且最佳计划可能会随着表和索引的变化而变化。`在此处输入代码准备好的语句对 SQL 注入具有弹性,因为稍后使用不同协议传输的参数值不需要正确转义。如果原始语句模板不是来自外部输入,则不会发生 SQL 注入。
0
0
0
元芳怎么了
准备好的语句已经绑定到数据库的具体连接,包含低级 driver.Stmt 并且可以被多个 go-routing 并发使用。所以准备和使用非常方便,而且工作速度更快。
0
0
0
打开App,查看更多内容
随时随地看视频
慕课网APP
相关分类
Go
继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续