【发布时间】:2018-09-28 16:44:15
【问题描述】:
Query.Release() 在幕后做了什么?
这意味着“将查询返回池”是什么意思?
什么时候应该使用Query.Get(),什么时候应该使用Query.GetRelease()?
【问题讨论】:
Query.Release() 在幕后做了什么?
这意味着“将查询返回池”是什么意思?
什么时候应该使用Query.Get(),什么时候应该使用Query.GetRelease()?
【问题讨论】:
正如您在文档 https://godoc.org/github.com/gocql/gocql#Query 中注意到的那样。释放它确实将查询释放回池中。当您不想再使用相关的特定查询时,应该使用它。
如果您想提高性能,可以重复使用未发布的查询,因为您不需要执行任何在创建查询时总是发生的初始化。
具体什么时候应该使用当然取决于您的情况,但一般原则如上所述。通常,您会在创建查询后直接输入defer q.Release(),但这取决于您的具体用例。
至于gocqlx.GetRelease(),它会在后台为您执行此操作,以提供一种非常方便和安全的方式来查询和获取结果,而无需处理清理工作。
【讨论】: