知识大全 巧用MySQL InnoDB引擎锁机制解决死锁问题[1]

Posted 机制

篇首语:没有加倍的勤奋,就既没有才能,也没有天才。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 巧用MySQL InnoDB引擎锁机制解决死锁问题[1]相关的知识,希望对你有一定的参考价值。

巧用MySQL InnoDB引擎锁机制解决死锁问题[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  最近 在项目开发过程中 碰到了数据库死锁问题 在解决问题的过程中 笔者对MySQL InnoDB引擎锁机制的理解逐步加深

  案例如下

  在使用Show innodb status检查引擎状态时 发现了死锁问题

  *** ( ) TRANSACTION:  TRANSACTION ACTIVE sec process no OS thread id starting index read  mysql tables in use locked   LOCK WAIT lock struct(s) heap size   MySQL thread id query id dcnet dcnet Searching rows for update  update TSK_TASK set STATUS_ID= UPDATE_TIME=now () where STATUS_ID= and MON_TIME*** ( ) WAITING FOR THIS LOCK TO BE GRANTED:  RECORD LOCKS space id page no n bits index `PRIMARY` of table `dcnet_db/TSK_TASK` trx id lock_mode X locks rec but not gap waiting  Record lock heap no PHYSICAL RECORD: n_fields ; pact format; info bits    : len ; hex c; asc b ;; : len ; hex eaee; asc (f ;; : len ; hex d ; asc @ ;; : len ; hex b ; asc P ;; : len ; hex a; asc P*;; : len ; hex ; asc T&;; : len ; hex c d c; asc A f ;; : len ; hex c f e f d f e e ; asc xxx /;; : len ; hex b; asc +;; : len ; hex bfa b; asc GK +;; : len ; hex e ; asc N$;;  *** ( ) TRANSACTION:  TRANSACTION ACTIVE sec process no OS thread id updating or deleting thread declared inside InnoDB   mysql tables in use locked    lock struct(s) heap size undo log entries   MySQL thread id query id dcnet dcnet Updating  update TSK_TASK set STATUS_ID= UPDATE_TIME=now () where ID in ( )  *** ( ) HOLDS THE LOCK(S):  RECORD LOCKS space id page no n bits index `PRIMARY` of table `dcnet_db/TSK_TASK` trx id lock_mode X locks rec but not gap  Record lock heap no PHYSICAL RECORD: n_fields ; pact format; info bits    : len ; hex c; asc b ;; : len ; hex eaee; asc (f ;; : len ; hex d ; asc @ ;; : len ; hex b ; asc P ;; : len ; hex a; asc P*;; : len ; hex ; asc T&;; : len ; hex c d c; asc A f ;; : len ; hex c f e f d f e e ; asc uploadfire /hand php;; : len ; hex b; asc +;; : len ; hex bfa b; asc GK +;; : len ; hex e ; asc N$;;  *** ( ) WAITING FOR THIS LOCK TO BE GRANTED:  RECORD LOCKS space id page no n bits index `KEY_TSKTASK_MONTIME ` of table `dcnet_db/TSK_TASK` trx id lock_mode X locks rec but not gap waiting  Record lock heap no PHYSICAL RECORD: n_fields ; pact format; info bits    : len ; hex ; asc %;; : len ; hex c d c; asc A f ;; : len ; hex c; asc b ;;  *** WE ROLL BACK TRANSACTION ( )

  此死锁问题涉及TSK_TASK表 该表用于保存系统监测任务 以下是相关字段及索引

  ID 主键   MON_TIME 监测时间   STATUS_ID 任务状态

cha138/Article/program/MySQL/201311/29600

相关参考

知识大全 Mysql Innodb引擎优化(参数篇)

MysqlInnodb引擎优化(参数篇)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  介绍  

知识大全 MYSQL死锁相关查找

MYSQL死锁相关查找  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  如果遇到死锁了怎么解决呢?

知识大全 轻松掌握MySQL数据库锁机制的相关原理[2]

轻松掌握MySQL数据库锁机制的相关原理[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  不

知识大全 轻松掌握MySQL数据库锁机制的相关原理[1]

轻松掌握MySQL数据库锁机制的相关原理[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在

知识大全 MySQL数据库存储引擎详解

MySQL数据库存储引擎详解  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  存储引擎是什么?  

知识大全 如何选择合适的MySQL存储引擎

如何选择合适的MySQL存储引擎  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  MySQL有多种

知识大全 通过查找引起死锁的的操作即可解决死锁[1]

  说道死锁问题的解决一般情况下我们都是选择KILL进程但如果不查出引起死锁的原因死锁的现象则会频繁出现其实只要通过查找引起死锁的的操作就可以方便的解决死锁  具体的解决方法如下  再死锁发生时我们可

知识大全 用Java+MySQL+PHP轻松构建跨平台的搜索引擎

用Java+MySQL+PHP轻松构建跨平台的搜索引擎  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧

知识大全 通过查找引起死锁的的操作即可解决死锁[2]

    引起数据库死锁的是:进程号其执行的SQL语法如下  EventTypeParametersEventInfo    LanguageEvent  select*fromtest  insert

知识大全 教你巧用PHP+MySQL搭建一个聊天室

教你巧用PHP+MySQL搭建一个聊天室  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!