2016-07-07 3 views
-1

У меня есть запросMySQL LEFT JOIN запрос оптимизация

SELECT P.*, COUNT(L.to) AS likes, U.name AS ownerName, U.username AS ownerUsername, 
    U.picture AS ownerPicture 
FROM sn_posts P LEFT JOIN sn_users AS U 
    ON U.id = P.ownerID 
LEFT JOIN sn_likes AS L 
    ON L.to = P.id 
WHERE (P.ownerID = 69) 
GROUP BY P.id 
ORDER BY P.id DESC 

это занимает - время 0,3337 сек,

+0

я хочу оптимизировать мои выше запрос .. –

+1

привет, и добро пожаловать в SO - пожалуйста, постарайтесь предоставить больше информации - структуры таблиц, количество данных, индексов и т. д. - так что у людей действительно есть способ помочь вам. –

+0

Вы можете добавлять индексы в столбцы join, кроме этого ваш запрос выглядит хорошо для меня. –

ответ

0

Добавить индекс для таблицы sn_posts с ownerID поля может быть лучше

+0

уже указатель на ownerID, но результат показывает строки 0 - 10 (всего 11 запросов, получено 0,8585 сек) –

+0

попробуйте этот: SELECT P. *, COUNT (L.to) AS нравится, U.name AS ownerName, U.username А.С. ownerUsername, U.picture КАК ownerPicture ОТ sn_posts Р LEFT JOIN sn_users AS U ПО U.id = P.ownerID И P.ownerID = 69 LEFT JOIN sn_likes AS L ПО L.to = P.id GROUP BY P.id ORDER BY P.id DESC – Joker

+0

неправильный результат ... –

Смежные вопросы