Оптимизировать несколько соединений SQL - PullRequest
0 голосов
/ 20 мая 2018

Мне нужно объединить все столбцы из одной таблицы (таблица A) в отдельные столбцы в двух других таблицах (B & C).Мой SQL работает, но довольно медленно.Проблема исходит от объединения A и C. Я изучал оптимизацию, но не нашел ничего, чтобы ускорить его.К сожалению, я не могу изменить дизайн стола.

SELECT tableA.*, 
       tableB.user_email,
       tableC.transaction_number 
FROM tableA 
LEFT OUTER JOIN tableB 
   ON tableA.user_id=tableB.id 
LEFT OUTER JOIN tableC 
   ON tableA.user_id=tableC.user_id 
   AND A.timestamp=C.timestamp 
ORDER BY A.timestamp DESC;

Спасибо за понимание!

1 Ответ

0 голосов
/ 20 мая 2018

Для вашего запроса вам нужны индексы для tableB(id, user_email) и tableC(user_id, timestamp, transaction_number) и tableA(timestamp, user_id).

Я не уверен, что вы можете сделать лучше, чем это.

...