zoukankan      html  css  js  c++  java
  • index_merge导致MySql死锁问题

    index-merge 导致线上死锁问题

    问题造成条件:

    两个事务分别执行两次update操作 

    每个用到了两个及以上索引 由于两边索引顺序不一致导致

    造成原因:

    InnoDB使用索引来实现行级别的锁,

    事务A 通过index1 对某个字段加了锁  

    事务B 通过index2 对另一个字段加了锁

    两个事务都持有自己的锁 并想锁对方已经加了锁的字段  ——造成死锁

    解决方案:

    1. 修改sql逻辑  现根据一条索引的条件查出主键,update操作都基于主键gid去操作

    2. 使两个事务的update 的where条件只用一条索引 (或者将合成联合索引)

    3. index_merge : off

    详细案例:

    另一个案例分析 https://blog.csdn.net/hehehaha1123/article/details/59058067

  • 相关阅读:
    Unity模型导入导出
    3D知识补充
    Unity. Navigation和寻路
    Unity坐标系
    Unity材质
    Unity摄像机
    Unity光照
    Unity资源管理与更新
    Unity垃圾回收
    intellij idea 的全局搜索快捷键方法
  • 原文地址:https://www.cnblogs.com/ttaall/p/13706040.html
Copyright © 2011-2022 走看看