以下查询需要5.5秒。由于这是一个简单的主键计数,并且两个表都有<5000个记录,我对它的速度有多惊讶。是否有提高性能的解决方法?
SELECT COUNT(*)
FROM users
WHERE (SELECT COUNT(*)
FROM clients
WHERE userID=users.id)=0
我在计算没有客户的用户数量。
答案 0 :(得分:3)
尝试此查询
SELECT
COUNT(*)
FROM
users
WHERE NOT EXISTS
(SELECT
userID
FROM
clients
WHERE
userID=users.id)
或者你可以尝试这个
SELECT
count(*)
FROM
users u
LEFT JOIN
clients c
ON
u.id = c.userId
WHERE
c.userId IS null
在id
列
希望这有帮助
答案 1 :(得分:2)
试试这个:
SELECT COUNT(*) FROM users u
left join clients c
on u.id = c.userID
where u.id not in (select userID from clients)