У меня есть запрос в моей WordPress плагин, как это:SQL: Chaining Присоединяется Эффективность
SELECT users.*, U.`meta_value` AS first_name,M.`meta_value` AS last_name
FROM `nwp_users` AS users
LEFT JOIN `nwp_usermeta` U
ON users.`ID`=U.`user_id`
LEFT JOIN `nwp_usermeta` M
ON users.`ID`=M.`user_id`
LEFT JOIN `nwp_usermeta` C
ON users.`ID`=C.`user_id`
WHERE U.meta_key = 'first_name'
AND M.meta_key = 'last_name'
AND C.meta_key = 'nwp_capabilities'
ORDER BY users.`user_login` ASC
LIMIT 0,10
Я новичок в использовании JOIN
и мне интересно, насколько эффективно это использовать так много JOIN
в одном запросе , Лучше ли разбить его на несколько запросов?
The database schema can be found here.
В этом случае таблица будет я всегда присоединиться введите строку, соответствующую моим критериям. Но если регулярный JOIN будет быстрее, я буду использовать это. Если вас это интересует, это установка в стиле ванильного WordPress, так что схема таблицы приведена здесь: http://codex.wordpress.org/Database_Description#Table:_wp_users –
JOIN, безусловно, будет быстрее, даже если есть совпадения для всего. Ваш запрос в порядке, просто измените LEFT JOIN на JOIN. Затем убедитесь, что поля user_id и вашего идентификатора в разных таблицах имеют индекс. Возьмите совет @ MatejB, чтобы использовать EXPLAIN для анализа запроса. – Cfreak