zoukankan      html  css  js  c++  java
  • 如何来避免锁冲突

    锁冲突检测

      1、对于事务锁,可以查询相关视图,查询发现锁冲突以及顶端阻塞者

      2、对于表锁,无法查询阻塞者,无法确定阻塞关系,因此对于表锁,很难定位故障

    锁相关的视图

      innodb_locksinnodb_lock_waits

    锁相关的参数

      行锁超时参数:innodb_lock_wait_timeout

      表锁超时参数:lock_wait_timeout

      innodb有一个不好的地方,通过性能视图只能查看事务锁以及锁定关系,对于表锁不能确定锁定关系,因此对表锁不能进行阻塞者的查找和处理,对于行锁来说,可以查找到阻塞者,然后找到阻塞者对应的线程IDkill掉对应的线程就可以释放锁,注意innodb主要通过三个视图来处理锁定关系,innodb_locksinnodb_trxinnodb_lock_waits三个视图来联合查询锁定关系

    避免

      1、通过使用innodb table,避免使用MyISAM table

      2、监控行锁冲突(事务锁),为应用人员提供行锁冲突的信息(锁冲突对应的SQL语句、锁冲突对应的事务ID,然后通过binlog来查询事务对应的SQL语句),通过修改应用逻辑降低行锁冲突

      3、业务高峰期避免DDL,对于DDL操作一定要做好测试,对于锁表时间进行准确评估

      4、降低行锁冲突的超时时间

      5、监控大事务和长事务,将对应的SQL信息提供给开发人员

      6、提高DML语句对应的执行性能,尽量走索引

  • 相关阅读:
    bower使用记录
    前端生成二维码
    删除顽固node_modules
    vue初体验:实现一个增删查改成绩单
    H5常用代码:适配方案5
    H5常用代码:适配方案4
    H5常用代码:适配方案3
    ARFA 教堂的第四次洗礼&斜率优化重学
    CSP考前总结&周二晚+周三晚模拟考总结&洛谷11月月赛 III Div.1总结
    T44253 绝美的挣扎 题解
  • 原文地址:https://www.cnblogs.com/5945yang/p/11301143.html
Copyright © 2011-2022 走看看