情景介绍:在项目的demo期为了快速完成任务,有时候难免在项目上写出一些性能极差的代码比如hard code(没有遵循可配置化的思想实施),再比如在for循环里面做查询本节我們将针对在for循环里面做查询这个主题做优化分享。
A:通俗的讲就是查询次数太多超出了API限制。
Q2:有代码实例来再现这个问题吗
A:以促銷为例展开说明。
描述:假设我们有一个促销促销指对某一类产品,我们设置一个促销规则然后推送给需要care的用户。这时我们设计叻促销,促销详细促销产品这三个master-detail的关系对象。其中促销对象用来记录促销起止日期促销的DM单,促销的状态和发布情况;促销详细记錄某类产品的促销最小数量折扣;促销产品是根据促销详细中产品类型过滤出来的产品中选择的具体产品项。
目标:为了避免选择的促銷详细重复我们需要在促销详细新建时提示已重复的促销详细所选的产品类型 - 用Trigger实现。
优化前的Code展示:
分析:我们可以看出上述代码有兩层遍历之间加了一个select查询,如果数据量大的话就可能出现query 101异常。
优化后的Code展示:
总结:优化后的代码实现了代码分层,避免了for循環里面做查询