Ответы пользователя по тегу Yii
  • Как оптимизировать SQL-запрос (или MySQL-таблицу) для ускорения его выполнения?

    @easycode Автор вопроса
    не боюсь задавать глупые вопросы ))
    Изначально, не дописал один важный момент: таблица mails содержит в себе письма в разных статусах: в очереди, отправлено и т.д. Мой сумасшедший цикл выполняющий медленный запрос с LIKE'ами - неизбежен при таком функционале: у клиента есть рассылка писем по базе адресов, база адресов очень большая (более 100 тыс.) и главное что используется в разных местах огромной системы, ну и самое плохое: email'ы пишутся через запятую в одном поле и могут повторяться для разных записей из базы рассылки, потому я и использовал LIKE'и чтобы не отправить на один и тот же Email адрес более одного письма.

    Функционал такой конечно же надо переписывать - это понятно, но очень много зависимостей, смежного функционала и т.д. - это всё большой объем работы, а нужно бы быстрое решение.

    В рамках одного процесса формирования писем создается не более 10 тыс. писем. Потому я думаю пока лучшим временным решением будет создание промежуточной таблицы содержащий все email адреса для формирующихся писем по одному адресу в одной записи в одном поле. Таким образом, не нужно будет юзать LIKE'и, плюс сама таблица будет содержать максимум 3 поля и не содержать более 10 тыс. записей.

    Всем спасибо за комментарии и ответы!
    Если вдруг появятся еще свежие идеи по моей проблеме пожалуйста напишите здесь!
    Ответ написан
    Комментировать