我希望有人能帮助我。这是 SQL 查询:
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);
如何让它更快?
最佳答案
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;
你能展示一下你的表架构吗?您是否为 pf_mailbo.abs、pf_mailbo.empf、pf_profilvisit.u1、pf_profilvisit.u2、pf_profilvisit.id
列编制了索引?
关于MySQL不是很慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30170417/