我有一个mysql数据库。我的网站收到了很多max_user_connections错误,由于我无法再增加几天的限制,我想知道你们是否可以帮助我优化这个1到4之间的查询秒完成。 '状态' table是InnoDB,有230,221行,并且已经有索引,但它只是一个写得不好的查询?
SELECT status.id,users.id
FROM users, status
WHERE clan='someClan'
AND status.author!='loggedInUser'
AND status.anonymous!='someUser'
AND users.username='someUser'
AND status.data!=''
AND status.postdate > users.news_read
GROUP BY postdate LIMIT 2
感谢您的帮助。
答案 0 :(得分:0)
您需要在users
和status
表之间提供正确的连接。现在您返回大小(用户表)*大小(状态表)行数。
根据您的评论,我假设您知道当前用户的users.id。
SELECT status.id
FROM status
WHERE status.clan='someClan' \\ assuming clan is in status table
AND status.author!='someUser'
AND status.anonymous!='someUser'
AND status.data!=''
AND status.postdate > (Select users.news_read
from users
where users.username='someUser'
)
GROUP BY postdate LIMIT 2