以下查询需要 5.5 秒。由于这是一个简单的主键计数,并且两个表都有 <5000 条记录,我很惊讶它有多慢。有什么办法可以提高性能吗?
SELECT COUNT(*)
FROM users
WHERE (SELECT COUNT(*)
FROM clients
WHERE userID=users.id)=0
我正在计算没有客户的用户数量。
试试这个查询
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
在列上创建索引
希望这可以帮助
试试这个:
SELECT COUNT(*) FROM users u
left join clients c
on u.id = c.userID
where u.id not in (select userID from clients)