4 ms·
>As an example which has been annoying me the last few days, "database/sql" doesn't automatically prepare statements; so preparing is a separate step Not exact
by draaglom 11y ago
>As an example which has been annoying me the last few days, "database/sql" doesn't automatically prepare statements; so preparing is a separate step
Not exactly. All the "database/sql" functions actually use prepared statements under the hood.
You only need to explicitly create a prepared statement if you're reusing it (since the internal ones are also auto-closed, although I think there's also some kind of connection cache so they might be reused anyway...)
- lobster_johnson 11y ago> You only need to explicitly create a prepared statement if you're reusing it It does prepare statements internally, but they're not reused, which is the main point of prepared statements: I know I'll run this thing a bazillion times, so I want to prepare it once and then just execute it with new parameters from now on. As far as I can see, no caching is done [1]. There's a TODO note about maybe adding caching in the future. [1] https://golang.org/src/database/sql/sql.go https://golang.org/src/database/sql/sql.go
- draaglom 11y agoYeah, I remember reading about them planning it a couple years ago and just kinda assumed someone would've done it by now.