查询需要优化还是我只需要更高的最大连接数?

时间:2014-08-24 20:13:40

标签: php mysql sql database performance

我有一个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

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

您需要在usersstatus表之间提供正确的连接。现在您返回大小(用户表)*大小(状态表)行数。

根据您的评论,我假设您知道当前用户的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