想要找到某个时间段(譬如最近)执行最多的sql语句(参数可以不同),或者某个时间段被用到最多次数的表,怎么做到?
我所知道的只有两个方法,不知道适不适合你的情况。
第一种方法,比如PHP的开发框,ThinkPHP的Runtime目录中有sql.log文件,那是按天生成的,你可以用bash命令归类查询。了解到某时间段SQL的执行情况。如果你用其他开发框架可以看看其他框架有没有类似的。
第二种方式在你binglog中也是有sql执行的
第三种不推荐你用,太麻烦,但是更直观和具体。你在数据库里可以建一个表来统计sql操作指令和操作的数据表。这需要你在sql执行的过程中进行关联插入。在后台可以直观的去统计。比如开发框架采用ThinkPHP的,可以通过修改Db类库实现。
15 回答8.4k 阅读
8 回答6.2k 阅读
5 回答3.2k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答3.6k 阅读✓ 已解决
1 回答4k 阅读✓ 已解决
3 回答6k 阅读
不知道有没有捷径,能想到的是自己记录general_log,通过设置general_log变量开启日志的记录:
然后查询general_log的地址:
我这里得到的结果是:/usr/local/var/mysql/Jackies-MBP.log,就可以自己分析日志文件了。
对了,这个general_log_file变量你也可以自己设置为自己想存储的地址。
希望能帮助到你。