扣了库存没生成订单,@Transactional 一个字没生效 十一月中旬那次上线后,客服陆续接到投诉:用户付款成功,但订单列表里查不到。我翻数据库,发现 t_stock 的库存扣了,t_order 里却没有对应记录。同一个 @Transactional 方法里的两个操作,一个成了一个没成。 这种"
那条跑了 4.7 秒的 SQL,我改了三个地方降到 23 毫秒 九月底,运营反馈"订单查询页面打不开"。我一看监控,那个列表接口的 TP99 从平时的 120ms 涨到了 4.7 秒,慢查询日志里刷了一屏同一条 SQL。 库是 MySQL 5.7.21,订单表 t_order 数据量 860 万。先
对账时发现:同一个事务里两次查询的结果不一样 上周做月底对账,写了个校验脚本:先统计账户表的总余额,再逐条核对流水,最后再统计一次总余额,看两次是否一致。结果两次统计的数字差了 3800 元。 我一开始以为是脚本 bug,查了半天才发现——脚本跑的过程中,有交易在实时发生,我第二次统计时读到了新提交
慢查询日志里躺了一条 8 秒的 SQL DBA 每周会给我们发一份慢查询报表。上周的报表里,我们服务贡献了第一名:一条 8.2 秒的 SQL,平均执行 1200 次/天。 # Time: 2018-03-08T10:22:33.123456Z # Query_time: 8.203451 Lock
3 万条数据导了 20 分钟 上周五下午接到个活儿:从老系统导 3 万条历史订单到新库。我写了个循环,单次 insert,跑起来就去接水了。回来一看还在跑,最后总共花了 18 分 42 秒。DBA 在钉钉上问我是不是在攻击数据库。 痛定思痛,我把 MyBatis 批量插入的几种写法全试了一遍,顺便记