diff --git a/app/code/Magento/Newsletter/Model/ResourceModel/Queue.php b/app/code/Magento/Newsletter/Model/ResourceModel/Queue.php
index 12375a5a6ca07404fbcf813c56dc76f3a404c5d3..b25677846622bf175fb6c80ae632132d2fb43e2d 100644
--- a/app/code/Magento/Newsletter/Model/ResourceModel/Queue.php
+++ b/app/code/Magento/Newsletter/Model/ResourceModel/Queue.php
@@ -80,13 +80,13 @@ class Queue extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb
             $subscriberIds
         );
 
-        $usedIds = $connection->fetchCol($select);
+        $usedIds = array_flip($connection->fetchCol($select));
+        $subscriberIds = array_flip($subscriberIds);
+        $newIds = array_diff_key($subscriberIds, $usedIds);
+        
         $connection->beginTransaction();
         try {
-            foreach ($subscriberIds as $subscriberId) {
-                if (in_array($subscriberId, $usedIds)) {
-                    continue;
-                }
+            foreach (array_keys($newIds) as $subscriberId) {
                 $data = [];
                 $data['queue_id'] = $queue->getId();
                 $data['subscriber_id'] = $subscriberId;