比如使用使用下面命令查询sql最多的20条记录
mysqldumpslow -s c -t 20 /home/mysql/slowquery.log比如屏幕输出这些:
Count: 204677 Time=6.27s (1283970s) Lock=0.01s (1284s) Rows=10.0 (2046671), 2users@localhost
SELECT SQL_CALC_FOUND_ROWS padwp_posts.* FROM padwp_posts WHERE N=N AND padwp_posts.post_type = 'S' AND (padwp_posts.post_status = 'S') ORDER BY RAND() DESC LIMIT N, NCount: 3967 Time=25.99s (103090s) Lock=21.13s (83834s) Rows=8.0 (31736), 2users@localhost
SELECT arc.*, category.namerule, category.typedir, category.moresite, category.siteurl, category.sitepath, mem.userid
FROM dede_archives arc
LEFT JOIN dede_arctype category ON category.id=arc.typeid
LEFT JOIN dede_member mem ON mem.mid=arc.mid
WHERE arc.arcrank > -N
ORDER BY arc.sortrank DESC LIMIT N
在这个输出中,只看到表的名称,怎样才能看到数据库名称?因为服务器上有很多数据库,光知道表的名称不管用的。还有,比如上面的记录,有些数据库用户名怎么变成 2users@localhost ?这是哪个用户呢?没看懂
mysqldumpslow -s c -t 20 /home/mysql/slowquery.log比如屏幕输出这些:
Count: 204677 Time=6.27s (1283970s) Lock=0.01s (1284s) Rows=10.0 (2046671), 2users@localhost
SELECT SQL_CALC_FOUND_ROWS padwp_posts.* FROM padwp_posts WHERE N=N AND padwp_posts.post_type = 'S' AND (padwp_posts.post_status = 'S') ORDER BY RAND() DESC LIMIT N, NCount: 3967 Time=25.99s (103090s) Lock=21.13s (83834s) Rows=8.0 (31736), 2users@localhost
SELECT arc.*, category.namerule, category.typedir, category.moresite, category.siteurl, category.sitepath, mem.userid
FROM dede_archives arc
LEFT JOIN dede_arctype category ON category.id=arc.typeid
LEFT JOIN dede_member mem ON mem.mid=arc.mid
WHERE arc.arcrank > -N
ORDER BY arc.sortrank DESC LIMIT N
在这个输出中,只看到表的名称,怎样才能看到数据库名称?因为服务器上有很多数据库,光知道表的名称不管用的。还有,比如上面的记录,有些数据库用户名怎么变成 2users@localhost ?这是哪个用户呢?没看懂
2 2users@localhost代表用户2users在localhost(本地)执行的查询ps mysqldumpslow 自带的这个工具不实用 不如直接用shell自己分析想要的
谢谢shell太菜了,不行啊