Изначально, не дописал один важный момент: таблица mails содержит в себе письма в разных статусах: в очереди, отправлено и т.д. Мой сумасшедший цикл выполняющий медленный запрос с LIKE'ами - неизбежен при таком функционале: у клиента есть рассылка писем по базе адресов, база адресов очень большая (более 100 тыс.) и главное что используется в разных местах огромной системы, ну и самое плохое: email'ы пишутся через запятую в одном поле и могут повторяться для разных записей из базы рассылки, потому я и использовал LIKE'и чтобы не отправить на один и тот же Email адрес более одного письма.
Функционал такой конечно же надо переписывать - это понятно, но очень много зависимостей, смежного функционала и т.д. - это всё большой объем работы, а нужно бы быстрое решение.
В рамках одного процесса формирования писем создается не более 10 тыс. писем. Потому я думаю пока лучшим временным решением будет создание промежуточной таблицы содержащий все email адреса для формирующихся писем по одному адресу в одной записи в одном поле. Таким образом, не нужно будет юзать LIKE'и, плюс сама таблица будет содержать максимум 3 поля и не содержать более 10 тыс. записей.
Всем спасибо за комментарии и ответы!
Если вдруг появятся еще свежие идеи по моей проблеме пожалуйста напишите здесь!