Оптимизируйте запрос с помощью множества операторов AND в предложении WHERE - PullRequest
0 голосов
/ 20 февраля 2020

можно ли оптимизировать этот запрос sql, чтобы иметь лучшее время выполнения в случае таблиц большого размера

SELECT X.id,X.id2
FROM Table X, Table Y, Table Z, Table W
WHERE  Y.id = 1 
        AND Y.dt = Z.dty 
        AND Z.el = 2 
        AND Z.id = W.idz 
        AND W.idx = X.id

1 Ответ

1 голос
/ 20 февраля 2020

Используйте правильный стандартный явный JOIN Синтаксис вместо запятых:

SELECT X.id, X.id2 
FROM Table X INNER JOIN
     Table W 
     ON W.idx = X.id INNER JOIN
     Table Z
     ON Z.id = W.idz INNER JOIN
     Table Y
     ON Y.dt = Z.dty
WHERE Y.id = 1 AND Z.el = 2;

Просто убедитесь, что у вас будут индексы X(ID), W(idx), Z(id,dty,el), Y(dt,id)

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