MySql - Joins - два раза за одним столом - PullRequest
0 голосов
/ 02 марта 2019

как мы можем добиться этого с большей эффективностью при наличии тонны записей?

SELECT M.t1, M.t2,A.x2,B.x2
FROM M
JOIN  P as A ON A.x1 = M.t1
JOIN P as B ON B.x1 = M.t2;

обратите внимание, индексирование уже применено к M.t1 и M.t2.

1 Ответ

0 голосов
/ 02 марта 2019

Если у вас есть «тонна» записей, то ваш запрос, вероятно, возвращает «тонну» - или даже больше - записей.Все, что вы можете сделать, это добавить индексы.

Для этого запроса я рекомендую индекс на P(x1, x2).Вы также можете обнаружить, что индекс на M(t1) работает - просто потому, что исходные страницы данных не нужно читать, только индекс.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...