Как составить оптимизированный SQL-запрос для поиска по нескольким таблицам?

Стоит задача сделать поиск по БД (MySQL) по нескольким таблицам.
Поиск дает такие примеры:

(SELECT content, title, 'msg' as type FROM messages WHERE content LIKE '%" . 
           $keyword . "%' OR title LIKE '%" . $keyword ."%') 
           UNION
           (SELECT content, title, 'topic' as type FROM topics WHERE content LIKE '%" . 
           $keyword . "%' OR title LIKE '%" . $keyword ."%') 
           UNION
           (SELECT content, title, 'comment' as type FROM comments WHERE content LIKE '%" . 
           $keyword . "%' OR title LIKE '%" . $keyword ."%')

Такие ответы даны примерно в 2010 - 2015 годах. В этом я совсем не разбираюсь, но хотел бы получить оптимизированный запрос, если поиск будет вестись по большому количеству строк. Такой запрос оптимален или есть варианты получше?
  • Вопрос задан
  • 122 просмотра
Пригласить эксперта
Ответы на вопрос 1
@My1Name
Приведённый в пример запрос, очень похож на структуру хранения данных Lucene Core


Такой запрос оптимален или есть варианты получше?

Полнотекстовый поиск с ElasticSearch, наверно будет более оптимальным решением.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы