我有一个拍卖网站,有时会负载过重,主要是mysql占用了大量的内存和CPU。我的情况如下。
每秒钟,一个ajax查询会去mysql查询每个在线用户观看的拍卖品的出价次数,以检查是否与上一次不同。如果有人出价,计数就变了,所以这个ajax会调用另一个ajax,检索记录,并在表中显示特定于正在观看/登录的用户的竞标。我将其限制为前10条以减少负载。
然而问题在于,如果有50个用户在线,其中一个人出价,那么就会有50个查询进入mysql,并且全部都会检测到出价次数已更改,并发出其他查询以获取记录,以显示对应于每个用户的竞标。
更大的问题是,如果有500个用户在线,则会有500个查询进入mysql以检测更改,如果出价,另外500个查询(针对每个在线用户的查询)进入mysql,并可能导致服务器崩溃。
注意:目前在PHP中使用了一个单例作为单个mysql连接对象,负责执行查询、检索记录等。
我实际上正在寻找一种解决方案,在500个用户在线时不需要进行500个mysql查询,但所有用户都应该得到更新,即使其中一个人为特定拍卖品出价。任何想法/建议都非常受欢迎。
我如何最好地实现这种情况下减轻mysql负载的解决方案?
资源方面,我们相当不错,在Hostgator上进行VPS4。唯一的问题是CPU/内存使用率,在许多用户竞价时达到了95%。
感谢您提供的建议。
每秒钟,一个ajax查询会去mysql查询每个在线用户观看的拍卖品的出价次数,以检查是否与上一次不同。如果有人出价,计数就变了,所以这个ajax会调用另一个ajax,检索记录,并在表中显示特定于正在观看/登录的用户的竞标。我将其限制为前10条以减少负载。
然而问题在于,如果有50个用户在线,其中一个人出价,那么就会有50个查询进入mysql,并且全部都会检测到出价次数已更改,并发出其他查询以获取记录,以显示对应于每个用户的竞标。
更大的问题是,如果有500个用户在线,则会有500个查询进入mysql以检测更改,如果出价,另外500个查询(针对每个在线用户的查询)进入mysql,并可能导致服务器崩溃。
注意:目前在PHP中使用了一个单例作为单个mysql连接对象,负责执行查询、检索记录等。
我实际上正在寻找一种解决方案,在500个用户在线时不需要进行500个mysql查询,但所有用户都应该得到更新,即使其中一个人为特定拍卖品出价。任何想法/建议都非常受欢迎。
我如何最好地实现这种情况下减轻mysql负载的解决方案?
资源方面,我们相当不错,在Hostgator上进行VPS4。唯一的问题是CPU/内存使用率,在许多用户竞价时达到了95%。
感谢您提供的建议。