• Apex 小知识:SOQL 在循环中的应用


    两种在循环中引用 SOQL 的方法

    第一种方法:

    List<Account> accounts = [SELECT Id FROM Account WHERE NumberOfEmployees > 300];
    for (Account acc : accounts) {
        // 具体逻辑
    }
    

    第二种方法:

    for (List<Account> accounts : [SELECT Id FROM Account WHERE NumberOfEmployees > 300]) {
        for (Account acc : accounts) {
            // 具体逻辑
        }
    }
    

    效果比较

    第一种方法是将所有记录先从数据库中读取出来,然后放入循环进行具体的逻辑。它只需要和数据库(服务器)进行一次通信,然后读取大量数据。

    第二种方法是将 SOQL 查询放在 for 循环中,for 循环的循环变量是一个列表,接下来对这个列表进行另一个 for 循环,执行具体的逻辑。外部的 for 循环在每一次循环时,会将 Account 记录分块读取出来,放入列表变量。它的优点是每次从数据库中读取的数据量少,而缺点是需要和数据库(服务器)多次通信。

    在实际开发的时候,我们需要根据具体的情况,使用不同的方法来读取数据,从而让执行效率最大化。

  • 相关阅读:
    BZOJ 1191 HNOI2006 超级英雄hero
    BZOJ 2442 Usaco2011 Open 修建草坪
    BZOJ 1812 IOI 2005 riv
    OJ 1159 holiday
    BZOJ 1491 NOI 2007 社交网络
    NOIP2014 D1 T3
    BZOJ 2423 HAOI 2010 最长公共子序列
    LCA模板
    NOIP 2015 D1T2信息传递
    数据结构
  • 原文地址:https://www.cnblogs.com/chengcheng0148/p/soql_usage_comparison_in_apex.html
Copyright © 2020-2023  润新知