MySQL不是很慢

标签 mysql sql select notin

我希望有人能帮助我。这是 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/

相关文章:

jquery - jquery页面上的多个依赖选择框

python - 如何在Django中使用LIKE语句执行mysql查询

mysql - 改进 SQL 查询以获取特定日期和设备类型的传感器事件

每个用户的 php 限制 View

mysql - 查询 - 向用户发送公共(public)和私有(private)消息

java - Hibernate 级联继承

mysql - 需要有关 4 个表的 SQL 查询的帮助

php - 使用 Laravel Eloquent 在 MySQL 列别名中添加空格

mysql - 我的 sql 查询有些奇怪

mysql - 从带有 WHERE 的 SELECT 中插入 - 如果存在?