Похожий механизм есть в одной CMS, там при больших объемах много join, и вот по некоторым версиям, неплохо вопрос скорости решается выносом индексов в Sphinx, не знаю на сколько это поможет вам, но как вариант думаю стоит погуглить.
Ответ написан
Комментировать
Комментировать
Оценили как «Нравится»
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.