我是服务器端的新手,我一直在为我的网站管理专用服务器。
在高峰时段,网站速度很慢,以便知道为什么我一直在使用htop进行监控。
一些非常持久(超过几个小时)的mysql进程占用了高达95%的CPU!
问题是我不知道查询可能是什么原因,也不知道如何监控它。 我每小时都有一个cron,有时需要很长时间才能运行,但减速的时间并不总是与cron匹配。
我听说过使用cron作业杀死太长时间的mysql进程的解决方案但不会导致数据库出现差异吗?
答案 0 :(得分:0)
将MySQL服务器配置为log slow queries,然后查看它们。您需要了解这些查询为何如此缓慢。
最有可能的是,可以通过添加适当的索引来加速这些查询,但这不是快速而严格的规则 - 您需要了解实际发生的情况。
你可以杀死长时间运行的查询,但如果你有MyISAM引擎,它可能会破坏你的表。在这种情况下,请认真考虑切换到Innodb引擎。使用像Innodb这样的事务引擎,当前正在运行的事务可能会被回滚,但数据不应该被破坏。