Hans Biedemann
Hans Biedemann

Reputation: 11

MySQL not in very slow

I hope somebody can help me. This is the SQL query:

SELECT * 
FROM pf_profilvisit 
WHERE u1 = '".$user."' 
   AND u2 NOT IN (
      SELECT empf FROM pf_mailbox WHERE abs = '".$user."'
   ) 
   AND u2 NOT IN (
      SELECT abs FROM pf_mailbox WHERE empf = '".$user."'
   ) 
ORDER BY id DESC);

How can I make it faster?

Upvotes: 1

Views: 70

Answers (1)

Alex
Alex

Reputation: 17289

SELECT pf_profilvisit.* 
FROM pf_profilvisit
LEFT JOIN  pf_mailbox 
ON pf_profilvisit.u2 = pf_mailbox.empf 
  OR pf_profilvisit.u2 = pf_mailbox.abs
WHERE pf_profilvisit.u1 = '".$user."' 
  AND pf_mailbox.empf IS NULL
  AND pf_mailbox.abs IS NULL
ORDER BY pf_profilvisit.id DESC;

Could you show your tables schema? Do you have columns pf_mailbo.abs, pf_mailbo.empf, pf_profilvisit .u1, pf_profilvisit.u2, pf_profilvisit.id indexed ?

Upvotes: 1

Related Questions