@apptimeru

Как оптимизировать sql запрос? И как определить какой запрос лучше?

Добрый день подскажите пожалуйста, как можно оптимизировать данный запрос

SELECT terms.name, terms.slug, tags_meta.id_tags FROM terms 
LEFT OUTER JOIN term_taxonomy ON terms.term_id = term_taxonomy.term_id AND term_taxonomy.taxonomy = 'post_tag'
LEFT OUTER JOIN term_relationships ON term_taxonomy.term_taxonomy_id = term_relationships.term_taxonomy_id
LEFT OUTER JOIN tags_meta ON tags_meta.id_tags = terms.term_id
WHERE term_relationships.object_id = $param1 AND tags_meta.id_tags != ''


Это стандартная Wordpress база данных. необходимо вытащить все тэги к посту, но задача усложняется тем, что есть еще одна таблица, которая дополнительно фильтрует тэги (tags_meta). Данный запрос отлично отрабатывает, но вот не знаю насколько он сложный для базы данных.

Может разделить его на несколько запросов? Например получить все тэги поста, а после дополнительно отфильтровать через еще одну таблицу, получится 2 запроса, но что лучше?

Или может этот же запрос, можно написать более элегантно и оптимизированее. Вообще как можно проверить какой запрос выполняется быстрее и с меньшей нагрузкой? Есть какая-то возможность сравнить запросы?
  • Вопрос задан
  • 164 просмотра
Пригласить эксперта
Ответы на вопрос 1
@SharuPoNemnogu
не язык плохой, программисты такие...
В select участвуют поля из таблиц terms и tags_meta, отсюда вопрос, зачем left join term_taxonomy и term_relationships. Опишите что в какой таблице и что вы хотите получить на выходе.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы