【发布时间】:2021-11-09 03:33:17
【问题描述】:
我在 sqlx 文档中遇到过这个:
在大多数数据库中,每当执行查询时,实际上都会在后台准备语句。但是,您也可以使用 sqlx.DB.Prepare() 显式准备语句以在其他地方重用:
虽然我找不到数据库实际准备每个查询的证据。 那是真的吗,我应该手动使用准备吗?
【问题讨论】:
-
这取决于您使用的数据库驱动程序。
标签: mysql database postgresql go
我在 sqlx 文档中遇到过这个:
在大多数数据库中,每当执行查询时,实际上都会在后台准备语句。但是,您也可以使用 sqlx.DB.Prepare() 显式准备语句以在其他地方重用:
虽然我找不到数据库实际准备每个查询的证据。 那是真的吗,我应该手动使用准备吗?
【问题讨论】:
标签: mysql database postgresql go
MySQL 和 PostgreSQL 绝对不会准备好每个查询。您可以直接执行查询,无需执行准备和执行序列。
sqlx 驱动程序中的 Go 代码可能会这样做,但它是可选的,这样做是为了在传递 args 时更简单地编写 Go 接口。
你不需要手动使用Prepare() func,除非你想重用准备好的查询,用不同的参数多次执行。
【讨论】: