我一直是使用mysql这个数据库软件它工作比较稳定效率也很高在遇到严重性能问题时一般都有这么几种可能
索引没有建好
sql写法过于复杂
配置错误
机器实在负荷不了
索引没有建好
如果看到mysql消耗的cpu很大可以用mysql的client工具来检查在linux下执行/usr/local/mysql/bin/mysql hlocalhost uroot p 输入密码如果没有密码则不用p参数就可以进到客户端界面中看看当前的运行情况show full processlist可以多运行几次这个命令可以看到当前正在执行的sql语句它会告知执行的sql数据库名执行的状态来自的客户端ip所使用的帐号运行时间等信息在我的cache后端这里面大部分时间是看不到显示任何sql语句的我认为这样才算比较正常如果看到有很多sql语句那么这台mysql就一定会有性能问题如果出现了性能问题则可以进行分析
是不是有sql语句卡住了?
这是出现比较多的情况如果数据库是采用myisam那么有可能有一个写入的线程会把数据表给锁定了如果这条语句不结束则其它语句也无法运行查看processlist里的time这一项看看有没有执行时间很长的语句要留意这些语句
大量相同的sql语句正在执行
如果出现这种情况则有可能是该sql语句执行的效率低下同样要留意这些语句然后把你所怀疑的语句统统集合一下用desc(explain)来检查这些语句首先看看一个正常的desc输出
mysql> desc select * from imgs where imgid=;
[] [] [] [] [] []