gorm, preload 对比 join ,两者的优缺点?
来源:1-13 商品分类的列表接口 - 2
人生几何cg
2021-11-04 17:12:50
preload 会执行多条 sql 语句,是否会有 一致性问题? 以及性能问题?
join 只执行一条 sql 语句,是否更好?
2回答
qq_睡着了才能不纠结_0
2022-06-12
很明显。join是关联模式查询,而preload 就是 in(ids)的模式查询。
join相比模型关系查询方式。join更为传统,不需要多次查询,但是需要考虑关联时候字段的索引问题,还有字段太多引起的性能问题。join不符合模型关系的设计模式,所以orm一般不直接用join。 本人玩过php的大部分框架的orm。都是这个感觉
preload就是用in ids 的查询方法,除了查询次数增多外,单次查询性能不用担心,通过聚簇索引(也就是主键) 去查询的,能够避免回表的过程(如果知道回表这个概念的话 就能理解了)
preload这种设计是为了模型关系而设计的,个人感觉还是很好用的
我对底层sql的研究还算可以,php开发6年以上,转go中,欢迎讨论
bobby
2021-11-05
你看一下 当使用preload的时候 gorm底层执行的sql是什么
相似问题