论坛风格切换
  • 3366阅读
  • 0回复

[mysql]某站点数据表繁忙时经常挂,检查记 [复制链接]

上一主题 下一主题
离线太史慈
 

发帖
766
金币
626
威望
556
只看楼主 倒序阅读 使用道具 楼主  发表于: 2011-07-21
首先进服务器
控制面板->管理工具->计算机管理
里面看事件查看器,应用程序

看这里的情况应该是发生了一个什么事情导致mysql的表坏掉了。
eventsystem的意思是软件冲突了,一冲突了之后 mysql 的表就坏掉了

然后想进mysql看看mysql的慢查询是错误日志,发现配置文件里面没有加入,按照这个方法加入了mysql日志
http://phpwind.me/13.html

这时等慢查询日志进来,另外看了下服务器,发现用的apache,另外还装了瑞星杀毒,360防火墙。
几大主流web:nginx,iis,apache来说
nginx的性能是apache的10倍,所以能不用apache尽量不要用apache的,由于这台机是windows,所以用iis比较好,至少那么多站点用iis没什么问题的。

杀毒服务器上没必要装,杀毒软件有时还会乱扫描的,mysql没停就扫描mysql的源备分,扫描了一下,挂掉了。一般服务器上装个360足够了,安全不是靠杀毒软件的,而是靠window服务器的目录权限配置。

这时想想检查慢查询,刚才加入的mysql日志,慢查询日志出来了一条。
  1. SELECT COUNT(*) AS count FROM pw_posts p WHERE p.authorid= '22456'   AND p.fid NOT IN('0','38','78','103','36','51','99','81','82','84','237','70','116','92','171','117','123','127','128','129','167','178','179','180','181','209');

这个我一看,就知道是后台有个功能,就相关话题,这个功能性能有点问题,所以不要开启。

这个功能关闭后,我发现站点的read页面查询还是比较多,有18条查询。
于是加入了http://phpwind.me/47.html 这个功能,可以把页面上的所有查询输出。


这里发现,有很多雷同的查询,
  1. SELECT user_state FROM pw_confirm_user WHERE uid =116271 AND user_state=1

这种语句就算性能没问题,但是查询了那么多次,本就不应该的。这个应该属于定制修改程序的问题。至于如何避免这种慢查询,待下回分析。说来话长了。

然后没什么了,mysql的错误日志还没产生,就是盯着日志看了。
[url=http://www.phpwind.com]phpwind[/url]
快速回复
限100 字节
如果您在写长篇帖子又不马上发表,建议存为草稿
 
提到某人:
选择好友
上一个 下一个