我有一个拥有超过一百万种产品的ecommerece网站。它在debian 7上运行,使用apache2.2,php5.4,mysql 5.5和laravel 4.1。它曾经运行平稳,但最近却变得非常缓慢。

我认为这是由于对服务器的mysql查询数量所致。我使用了各种mysql工具,发现每秒的查询量很高(1000-2000)。尽管在将请求记录到网站并进行查询时,它几乎没有那么多。

另外,我最近对代码没有做太多更改,并且由于它过去可以正常运行,因此我不确定是否是查询量大的问题(不确定一切正常时的查询量是多少)。

我正在寻找有关如何调试或找出问题的任何想法。页面上的用户数量未更改。大约有相同数量的请求。我有一些缓存。但是由于我拥有太多的产品页面,并且大多数用户访问了不同的页面,因此缓存在那里的作用很小。有什么想法可以为许多产品页面提供更好的缓存吗?

最佳答案

您是否已打开“查询缓存”?这可能有帮助,也可能有伤害。

MySQL有多少可用内存(包括正在使用的内存)?让我们来看看这些以进行各种检查:

SHOW VARIABLES;
SHOW GLOBAL STATUS;


设置long_query_time = 0.5


打开慢日志
等一天
使用mysqldumpslow -s tpt-query-digest汇总慢速日志-这些按“对系统的影响”排序。
让我们来看看前三个查询。包括SHOW CREATE TABLEEXPLAIN ...

10-04 22:47
查看更多