Оптимизация одного из ключевых запросов к БД

Добрый день!
Сегодня получили письмо от службы поддержки со следующим содержанием
Доброго времени суток!

Вот этот запрос перегружает базу.

SELECT SQL_CALC_FOUND_ROWS DISTINCT t.topic_id, 
CASE WHEN (LOWER(t.topic_title) REGEXP '[[:<:]]plazan[[:>:]]') THEN 1 ELSE 0 END +
CASE WHEN (LOWER(tc.topic_text_source) REGEXP '[[:<:]]plazan[[:>:]]') THEN 1 ELSE 0 END AS weight
FROM prefix_topic AS t
LEFT JOIN prefix_topic_content AS tc ON tc.topic_id=t.topic_id
WHERE (topic_publish=1) AND
((LOWER(t.topic_title) REGEXP '[[:<:]]plazan[[:>:]]')
OR (LOWER(t.topic_title) REGEXP '[[:<:]]plazan[[:>:]]') 
OR
(LOWER(tc.topic_text_source) REGEXP '[[:<:]]plazan[[:>:]]')
OR (LOWER(tc.topic_text_source) REGEXP '[[:<:]]plazan[[:>:]]') 
)
ORDER BY
weight DESC,
t.topic_id ASC
LIMIT 0, 20

Сделаете с ним, пожалуйста, что-нибудь.--

Как я понимаю это один из ключевых запросов, поскольку он выполняется к таблицам prefix_topic prefix_topic_content и если я не ошибаюсь, то его основная задача — поиск топиков.
Подскажите что можно здесь сделать? Кто сталкивался с похожей проблемой?

У нас заблокировали пользователя БД из-за этого!!!