gocql Query.Get() против Query.GetRelease()
Что значит Query.Release()
делать за кулисами? Что это значит "вернуть запрос обратно в пул"? когда Query.Get()
следует использовать и когда Query.GetRelease()
?
1 ответ
Как вы заметили в документах https://godoc.org/github.com/gocql/gocql. Освободите это действительно выпустить запрос обратно в пул. Его следует использовать, когда вы больше не хотите использовать конкретный запрос.
Неотпущенный запрос можно использовать повторно, если вы хотите сделать его более производительным, поскольку вам не нужно выполнять инициализацию, которая всегда происходит при создании запроса.
Точно, когда каждый из них должен использоваться, конечно, зависит от вашего случая, но общий принцип такой же, как и выше. Как правило, вы бы поставить defer q.Release()
непосредственно после создания запроса, но это зависит от вашего конкретного случая использования.
Что касается gocqlx.GetRelease()
он делает это для вас под капотом, чтобы обеспечить очень удобный и безопасный способ запроса и получения результата без необходимости выполнять очистку.