MySQL 开启慢查询后,会在配置的目录下生成一个 slow.log文件。
grep "select" slow.log | grep "from" | sed 's/^.* from //' | sed 's/ where .*$//' | sed 's/ .*$//' | sort | uniq -c | sort -nr
8765 Role
5311 Gamemaster
3837 Mail
2 SweepTopData
2 q_zone_tower
2 q_zone
2 q_wipeout
2 q_vipconfiger
2 q_transfer
2 q_title
2 q_thearena
2 q_task_main
2 q_task_guild
2 q_task_daily
2 q_task_branch
2 q_suit
2 q_statue
MySQL提供的mysqldumpslow 程序 ,可以分析 这个slow文件, 把慢查询的 SQL分析出来 , 下面这句就是一个例子。
/usr/local/Percona-Server/bin/mysqldumpslow -s c -t 10 slow.log > fu
如果是因为没有加索引引起的,就赶紧加索引吧。
索引:
ALTER TABLE Role
ADD INDEX (name
)
ALTER TABLE Role
ADD INDEX (userid
)
ALTER TABLE Role
ADD INDEX (username
)