PHP:什么更有效? - in_array检查或单个MySQL查询?

时间:2014-12-01 08:34:11

标签: php mysql performance loops joomla

我在Joomla有用户! 2.5倍。它们具有从管理员(开/关)获取电子邮件的不同设置。我必须在电子邮件发送给他们时检查这些设置。 不幸的是,当每个用户的设置都在循环中检查时,现在有一个相当奇怪的架构(我不是作者)。因此,我们拥有许多用户,因此我们必须执行检查。 我想有两种方法可以解决这个问题。

  1. 在向单个用户发送电子邮件之前,我们会向我们的数据库询问获得电子邮件的状态。

    LOOP

    if(checkUserSettings()) // performs a single query to DB
    
       sendMail(...)
    
  2. 我们从DB获取所有用户,这些用户的电子邮件设置位于开启状态。我们将它们存储在数组中并在循环之前执行in_array检查。

    LOOP

    if(in_array($syst_user->id, $users_ids)) // contains array of users id id
    
        sendMail(...)
    
  3. 在essense中的

    sendMail()是一个PHPmailer。

    那么这些方法中的哪一种在实践中更有效?

0 个答案:

没有答案