不能盲目的作优化,要先找准问题所在,是cpu,内存,io?仍是峰值,语句?mysql
mysql> show status; 或 mysqladmin exts;sql
mysql> show processlist;服务器
状态说明:mysql优化
converting HRAP to MyIsAM 把查询结果放在磁盘(取得数据太多)工具
create tmp table 建立临时表(索引须要优化)性能
copying to tmp table to disk 把内存临时表复制到磁盘(索引须要优化,索引字段)测试
locked 被其余查询锁住(事务)优化
logging slow query 记录慢查询spa
准备:日志
检查是否开启profiling
show variables like 'profiling';
开启profiling
set profiling=on;
show profiles; //显示执行语句的执行信息(含语句query_id) show profile for query 1; //获取 query_id 为1的语句的执行信息 explain (sql语句) \G; //解析sql执行计划
mysql> show variables like 'show_query%'; //能够看到是否开启,和日志路径 mysql> show variables like '%long_query%'; //慢查询临界值,超过该值则记入慢查询 //开启 mysql> set global slow_query_log=1;
mysqladmin -uroot ext|awk 'Queries/{q=$4}/Threads_connected/{c=$4}/Threads_running/{r=$4}END{printf("%d %d %d\n",q,c,r)}'
待续……