У меня проблема с запросом, для выполнения которого требуется слишком много времени. Это мой запросЗапрос занимает слишком много времени для выполнения
SELECT U.user_id, C.c_id, U.username, U.email, R.reply
FROM users U, conversation C, conversation_reply R
WHERE CASE
WHEN C.user_one =1
THEN C.user_two = U.user_id
WHEN C.user_two =1
THEN C.user_one = U.user_id
END
AND C.c_id = R.c_id_fk
AND (
C.user_one =1
OR C.user_two =1
)
ORDER BY C.c_id DESC
У меня есть 250788 общего Recoderds в conversation_reply таблицы, хранящие сведения о сообщении, то этот запрос дает 10225 записей в результате, и принять 7.291 сек.
Пожалуйста, дайте мне правильное решение.
Хотите ли вы, чтобы все они были на одной странице? –
В запросе нет правильного объединения, вам нужно сначала включить этот запрос в явное соединение, за которым следует индексирование. –
Спасибо, я уже проиндексировал. –