4 Matching Annotations
  1. Apr 2025
    1. 我给你留一个问题吧。你现在知道了系统里面应该避免长事务,如果你是业务开发负责人同时也是数据库负责人,你会有什么方案来避免出现或者处理这种情况呢?

      预防和发现

      1. 通过innodb_schema追踪innodb的事务状态,发现长事务,予以告警
      2. 连接初始时需要显示的设置autocommit或者显式启动连接,关闭或归还连接池的时候应显式重置连接(目前spring、mybatis会自动做)
    1. 对于有索引的表,执行的逻辑也差不多。第一次调用的是“取满足条件的第一行”这个接口,之后循环取“满足条件的下一行”这个接口,这些接口都是引擎中已经定义好的。你会在数据库的慢查询日志中看到一个rows_examined的字段,表示这个语句执行过程中扫描了多少行。这个值就是在执行器每次调用引擎获取数据行的时候累加的

      row_examined表示在执行器扫描的数据行数,不代表执行引擎扫描的数据行数