教程 > gorm 教程 > 阅读:61

gorm hints——迹忆客-ag捕鱼王app官网

gorm 提供了 optimizer/index/comment hint 支持

https://github.com/go-gorm/hints


optimizer hints

import "gorm.io/hints"
db.clauses(hints.new("hint")).find(&user{})
// select * /*  hint */ from `users`

index hints

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`)"

comment hints

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 */

查看笔记

扫码一下
查看教程更方便
网站地图