проверил ваш запрос - выполняется долго, возможно, будет полезным написать, что табличка seo_source - самая жирная (более миллиона строк), а вот две другие заметно меньше (около 10к строк).
У меня есть не очень грамотный запрос sqlfiddle.com/#!9/53d445/10 , который, на удивление, неплохо работает на больших данных, но что-то мне подсказывает, что это не самое оптимальное решение
И все-таки пришлось добавить этот компонент в массив components в конфиге, а в bootstrap вызывать по id. Иначе событие не отвязывается. Подозреваю, что Yii::$container->get('component-class-name') возвращает другой объект класса, а не тот, что вызывается из bootstrap по имени класса. Если в bootstrap вызывать компонент по id, то этот же объект доступен через Yii::$app->get('componentId'). Но все равно спасибо
Благодарю за Yii::$container->get('component-class-name'). Вариант с Yii::$app->get('componentId') не работает, видимо из-за того, что в bootstrap прописан именно класс. Думаю, теперь отсоединить обработчик события смогу без проблем.
У меня есть не очень грамотный запрос sqlfiddle.com/#!9/53d445/10 , который, на удивление, неплохо работает на больших данных, но что-то мне подсказывает, что это не самое оптимальное решение