MYSQL调优总结1
如果一台服务器出现长时间负载过高 /周期性负载过大,或偶尔卡住如何来处理? 答:大的思路-------- 是周期性的变化还是偶尔问题? 是服务器整体性能的问题, 还是某单条语句的问题? 具体到单条语句, 这条语句是在等待上花的时间,还是查询上花的时间. 唯一的办法-----监测并观察服务器的状态. 1:观察服务器状态, 一般用如下2个命令 Show processlist; 这个命令是显示当前所有连接的工作状态. 如果观察到以下状态,则需要注意 converting HEAP to MyISAM 查询结果太大时,把结果放在磁盘 (语句写的不好,取数据太多) create tmp table 创建临时表(如group时储存中间结果,说明索引建的不好) Copying to tmp table on disk 把内存临时表复制到磁盘 (索引不好,表字段选的不好) locked 被其他查询锁住 (一般在使用事务时易发生,互联网应用不常发生) logging slow query 记录慢查询 例: mysql> show status; 查看链接状态 mysql 5.5 以后加了一个profile设置,可以观察到具体语句的执行步骤. 0:查看profile是否开启 > Show variables like ‘profiling’ 1:> set profiling=on; mysql>