我在 sqlx 文档中遇到了这个:
在大多数数据库上,每当执行查询时,语句实际上都会在幕后准备。但是,您也可以使用 sqlx.DB.Prepare() 显式准备语句以便在其他地方重用:
尽管我找不到证据证明数据库实际上准备了每个查询。 那么是真的吗,我应该手动使用prepare吗?
最佳答案
MySQL 和 PostgreSQL 绝对不会准备每个查询。您可以直接执行查询,无需执行准备和执行序列。
sqlx 驱动程序中的 Go 代码可能会执行此操作,但它是可选的,这样做是为了在传递参数时更简单地编写 Go 接口(interface)代码。
您不需要手动使用 Prepare()
函数,除非您想重用准备好的查询,使用不同的参数多次执行它。
关于mysql - 最新的 Mysql 和 Postgres 会自动准备每个查询吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69169488/