Несколько маленьких запросов против одного длинного запроса. Какой из них более эффективен?
Какой из следующих подходов более эффективен:
Один более длинный запрос:
"SELECT COUNT( * ) AS num
FROM (
SELECT users.UID, cnumber
FROM users
JOIN identity ON users.UID = identity.UID
WHERE 'abc'
IN (google, facebook, twitter, linkedin)
) AS userfound
JOIN jobs ON userfound.cnumber = jobs.cnumber
WHERE JID = 24";
if(resultfromquery == 1)
//Some code here
else
//Some code here
Разбейте более длинный запрос на несколько запросов к одной таблице:
uid = "SELECT UID FROM identity WHERE 'abc' IN (google, facebook, twitter, linkedin)";
cnumber_from_usertable = "SELECT cnumber FROM users WHERE UID = 'uid'";
cnumber_from_jobtable = "SELECT cnumber FROM jobs WHERE JID = 24";
if(cnumber_from_usertable == cnumber_from_jobtable)
//Some code here
else
//Some code here