MySql存储过程调试

  1. 如何加log?
  2. 如何判断当前卡在那个小分片sql语句上了?
  3. 发现卡壳,如何杀掉语句

1、如何加log?

答:第一种在控制台,用于显示,比如sql1 和sql2之前想加打印日志。可以用SELECT “内容1”,“内容2”;打印格式为我们表格形式,每一个逗号之间都为表格的一个字段。

例子:

SELECT 'sql' AS '业务流程', FROM_UNIXTIME(tmp_stamp) AS '开始时间', FROM_UNIXTIME(tmp_stamp + 3600) AS '结束时间', ROW_COUNT() AS '影响记录行数';

第二种落地到表里,用于可追溯,定义好自己要落表的字段,可以书写一个log函数。最常见的,用于记录存储过程有没有执行完毕,可在开始插一条,在结束语句插一条。此法只是落地可追溯。

 

2、如何判断当前卡在那个小分片sql语句上了?

答: 通过执行日志。但最直观的是用show processlist\G;语句。上面有当前执行的sql和等待时间。当然为了看到sql全貌,和不同session所以的sql,建议使用show full processlist\G;

3、发现卡壳,如何杀掉语句

答:通过show full processlist\G查询到sql的id。使用kill + id进行杀死,注意,一般杀死SELECT语句,针对插入更新操作,中途杀掉可能导致数据不完整的脏数据。

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值