扫码一下
查看教程更方便
gorm 提供了 optimizer/index/comment hint
支持
https://github.com/go-gorm/hints
import "gorm.io/hints"
db.clauses(hints.new("hint")).find(&user{})
// select * /* hint */ from `users`
import "gorm.io/hints"
db.clauses(hints.useindex("idx_user_name")).find(&user{})
// select * from `users` use index (`idx_user_name`)
db.clauses(hints.forceindex("idx_user_name", "idx_user_id").forjoin()).find(&user{})
// select * from `users` force index for join (`idx_user_name`,`idx_user_id`)"
db.clauses(
hints.forceindex("idx_user_name", "idx_user_id").fororderby(),
hints.ignoreindex("idx_user_name").forgroupby(),
).find(&user{})
// select * from `users` force index for order by (`idx_user_name`,`idx_user_id`) ignore index for group by (`idx_user_name`)"
import "gorm.io/hints"
db.clauses(hints.comment("select", "master")).find(&user{})
// select /*master*/ * from `users`;
db.clauses(hints.commentbefore("insert", "node2")).create(&user)
// /*node2*/ insert into `users` ...;
db.clauses(hints.commentafter("select", "node2")).create(&user)
// /*node2*/ insert into `users` ...;
db.clauses(hints.commentafter("where", "hint")).find(&user{}, "id = ?", 1)
// select * from `users` where id = ? /* hint */