zoukankan      html  css  js  c++  java
  • 数据库锁的排查

    第1章 锁问题的排查步骤

    1.1 第一个里程:先查看是不是有锁等待

    show status like 'innodb_row_lock%';
    关注的信息
    Innodb_row_lock_current_waits: 当前有多少锁等待
    Innodb_row_lock_waits: 一共发生多少个锁等待(自打数据库启动起来,发生过多少锁等待!相当于一个计数器,重启以后会重新计数)
    

    1.2 第二个里程:查看锁源,谁锁的我

    select locked_table,locked_type,waiting_trx_id,waiting_pid,waiting_query,waiting_lock_mode,blocking_trx_id,blocking_pid,sql_kill_blocking_connection from sys.innodb_lock_waitsG;
    -参数说明
    locked_table:产生锁等待的表
    locked_type:锁的类型(RECORD,gaplock,nextlock)
    waiting_trx_id: 等待的事物的ID
    waiting_pid: 等待事物的连接线程ID
    waiting_query: 等待事物的语句
    waiting_lock_mode:等待锁的类型(X,S)
    blocking_trx_id: 锁源的事物ID
    blocking_pid: 锁源的事物连接线程ID
    sql_kill_blocking_connection: 处理建议
    

    1.3 第三个里程:根据锁源的pid,找到锁源SQL的线程ID

    select thread_id,name,processlist_id from performance_schema.threads where processlist_id=4;
    这一步得到在SQL层,执行SQL语句的thread_id=29
    

    1.4 第四个里程:根据锁源的SQL线程的ID,找到锁源的SQL语句

    select thread_id,event_name,sql_text from  performance_schema.`events_statements_current` where thread_id=29;
    把得到的语句丢给开发
    
    学习的进阶之路
  • 相关阅读:
    算法-在字符串中删除特定的字符或字符串
    Linux 下的7种文件类型
    TCP/IP协议、三次握手、四次挥手
    8、VUE自定义组件
    7、VUE事件
    6、VUE指令
    Redis高级功能-1、高并发基本概述
    5、插值
    4、VUE生命周期
    3、Vue实例的属性
  • 原文地址:https://www.cnblogs.com/yufenchi/p/12913286.html
Copyright © 2011-2022 走看看