返回顶部
首页 > 资讯 > 数据库 >MySQL InnoDB设置死锁检测的方法
  • 502
分享到

MySQL InnoDB设置死锁检测的方法

2024-04-02 19:04:59 502人浏览 安东尼
摘要

死锁是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,可以认为如果一个资源被锁定,它总会在以后某个时间被释放。而死锁发生在当多个进程访问同一数据库时,其中每个进程拥有的锁都是其他进

是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,可以认为如果一个资源被锁定,它总会在以后某个时间被释放。而死锁发生在当多个进程访问同一数据库时,其中每个进程拥有的锁都是其他进程所需的,由此造成每个进程都无法继续下去。
InnoDB的并发写操作会触发死锁,InnoDB也提供了死锁检测机制,可以通过设置innodb_deadlock_detect参数可以打开或关闭死锁检测:


innodb_deadlock_detect = on  打开死锁检测,数据库发生死锁时自动回滚(默认选项)
innodb_deadlock_detect = off  关闭死锁检测,发生死锁的时候,用锁超时来处理,通过设置锁超时参数innodb_lock_wait_timeout可以在超时发生时回滚被阻塞的事务


还可以通过设置InnDB Monitors来进一步观察锁冲突详细信息
设置InnoDB Monitors方法
建立test库
Mysql>create database test;
Query OK, 1 row affected (0.20 sec)
mysql> use test
Reading table infORMation for completion of table and column names
You can turn off this feature to get a quicker startup with -A


Database changed
mysql> create table innodb_monitor(a INT) engine=innodb;
Query OK, 0 rows affected (1.04 sec)


mysql> create table innodb_tablespace_monitor(a INT) engine=innodb;
Query OK, 0 rows affected (0.70 sec)


mysql> create table innodb_lock_monitor(a INT) engine=innodb;
Query OK, 0 rows affected (0.36 sec)


mysql> create table innodb_table_monitor(a INT) engine=innodb;
Query OK, 0 rows affected (0.08 sec)


可以通过show engine innodb status命令查看死锁信息
mysql> show engine innodb status \G
*************************** 1. row ***************************
  Type: InnoDB
  Name: 
Status: 
=====================================
2018-05-10 09:17:10 0x7f1fbc21a700 INNODB MONITOR OUTPUT
=====================================
Per second averages calculated from the last 46 seconds
-----------------
BACKGROUND THREAD
-----------------
srv_master_thread loops: 53 srv_active, 0 srv_shutdown, 240099 srv_idle
srv_master_thread log flush and writes: 0
----------
SEMAPHORES
----------
OS WAIT ARRAY INFO: reservation count 2007
OS WAIT ARRAY INFO: signal count 1987
RW-shared spins 3878, rounds 5594, OS waits 1735
RW-excl spins 3, rounds 91, OS waits 4
RW-sx spins 1, rounds 30, OS waits 1
Spin rounds per wait: 1.44 RW-shared, 30.33 RW-excl, 30.00 RW-sx
------------
TRANSACTIONS
------------
Trx id counter 78405
Purge done for trx's n:o < 78404 undo n:o < 10 state: running but idle
History list length 21
LIST OF TRANSACTIONS FOR EACH SESSION:
---TRANSACTION 421249967052640, not started
0 lock struct(s), heap size 1136, 0 row lock(s)
--------
FILE I/O
--------
I/O thread 0 state: waiting for completed aio requests (insert buffer thread)
I/O thread 1 state: waiting for completed aio requests (log thread)
I/O thread 2 state: waiting for completed aio requests (read thread)
.............................................................................
.............................................................................
.............................................................................

您可能感兴趣的文档:

--结束END--

本文标题: MySQL InnoDB设置死锁检测的方法

本文链接: https://lsjlt.com/news/48228.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • MySQL InnoDB设置死锁检测的方法
    死锁是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,可以认为如果一个资源被锁定,它总会在以后某个时间被释放。而死锁发生在当多个进程访问同一数据库时,其中每个进程拥有的锁都是其他进...
    99+
    2024-04-02
  • 死锁检测的常用3种方法
    什么是死锁 死锁(Dead Lock)是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程...
    99+
    2023-08-19
    java jvm android
  • MySQL 8 死锁检测脚本
    死锁示意图 死锁相关的表 information_schema.INNODB_TRX `performance_schema`.data_lock_waits `performance_schema`.threads `pe...
    99+
    2015-01-10
    MySQL 8 死锁检测脚本
  • MySQL的innoDB锁机制以及死锁的处理方法
    本篇内容主要讲解“MySQL的innoDB锁机制以及死锁的处理方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL的innoDB锁机制以及死锁的处理方法...
    99+
    2024-04-02
  • MySQL死锁使用详解及检测和避免方法
    目录前言锁的释放与阻塞死锁的发生和检测查看锁信息(日志)死锁的避免前言 上一篇博客我们知道的mysql事务的隔离机制和实现,以及锁的详细解析 链接: MySQL脏读幻读不可重复读及事务的隔离级别和MVCC、LBCC实现 ...
    99+
    2022-07-11
    MySQL死锁使用 MySQL死锁检测 MySQL死锁避免方法
  • MySQL死锁怎么检测和避免
    这篇文章主要讲解了“MySQL死锁怎么检测和避免”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“MySQL死锁怎么检测和避免”吧! ...
    99+
    2024-04-02
  • 关于MySQL死锁检测机制参数innodb_deadlock_detect设置的一点思考
      微信公众号中(这里)看到一个关于MySQL的innodb_deadlock_detect与并发相关的细节,觉得比较有意思,也即innodb_deadlock_detect这个参数的设置问题 死锁检测是一个MySQL Serv...
    99+
    2020-06-09
    关于MySQL死锁检测机制参数innodb_deadlock_detect设置的一点思考
  • Oracle 死锁的检测查询及处理
    死锁查询语句: -- 死锁查询语句 SELECT bs.username "Blocking User", bs.username "DB User", ...
    99+
    2024-04-02
  • 解决MySQL死锁的方法
    下面一起来了解下解决MySQL死锁的方法,相信大家看完肯定会受益匪浅,文字在精不在多,希望解决MySQL死锁的方法这篇短内容是你想要的。 一、查看MySQL死锁MySQL数据库会自己解决死锁,ki...
    99+
    2024-04-02
  • mysql死锁的解决方法
    mysql死锁的解决方法?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!MySQL有两种死锁处理方式:● 等待,直到超时(i...
    99+
    2024-04-02
  • MySQL的死锁机制以及避免死锁的方法
    本篇内容主要讲解“MySQL的死锁机制以及避免死锁的方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL的死锁机制以及避免死锁的方法”吧! ...
    99+
    2024-04-02
  • MyIsam与InnoDB引擎的锁实现以及避免死锁产生的方法
    这篇文章主要讲解了“MyIsam与InnoDB引擎的锁实现以及避免死锁产生的方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“MyIsam与InnoDB引擎...
    99+
    2024-04-02
  • mysql查看有没有死锁的方法
    小编给大家分享一下mysql查看有没有死锁的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!mysql查看有没有死锁的方法:执...
    99+
    2024-04-02
  • MySQL死锁的原因及解决方法
    这篇文章主要介绍“MySQL死锁的原因及解决方法”,在日常操作中,相信很多人在MySQL死锁的原因及解决方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”MySQL死锁的原因...
    99+
    2024-04-02
  • mysql查看死锁的方法是什么
    要查看MySQL中的死锁,可以使用以下方法: 使用SHOW ENGINE INNODB STATUS命令来查看当前的死锁情况。该命...
    99+
    2024-04-09
    mysql
  • InnoDB行锁的实现方法
    本篇内容主要讲解“InnoDB行锁的实现方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“InnoDB行锁的实现方法”吧! session_1 ...
    99+
    2024-04-02
  • 死链检测工具Xenu的操作及使用方法
    Xenu是一款免费的死链检测工具,用于检测网站中的死链接。以下是Xenu的操作和使用方法:1. 下载和安装:在Xenu官方网站(ht...
    99+
    2023-09-20
    Xenu
  • MySQL打印死锁日志的方法步骤
    目录前言:1.手动打印死锁日志2.自动保存死锁日志总结:前言: 在 MySQL 运维过程中,难免会遇到 MySQL 死锁的情况,一旦线上业务日渐复杂,各种业务操作之间往往会产生锁冲突...
    99+
    2024-04-02
  • 如何通过禁止死锁检测来提升高并发MySQL性能
    如何通过禁止死锁检测来提升高并发MySQL性能,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。 在一个高并发的MySQL服务器...
    99+
    2024-04-02
  • 检测代理服务器设置的方法是什么
    有以下几种方法可以检测代理服务器设置:1. 使用网站:可以使用一些免费的在线代理检测网站来检测代理服务器设置,比如WhatIsMyI...
    99+
    2023-06-06
    检测代理服务器设置 代理服务器 服务器
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作