mysql锁表原因及解决方法
mysql锁表原因及解决方法
一、导致锁表的原因
1、锁表发生在insert update 、delete 中;
2、锁表的原理是 数据库使用独占式封锁机制,当执行上面的语句时,对表进行锁住,直到发生commite 或者 回滚 或者退出数据库用户;
3、锁表的原因 :
1)、A程序执行了对 tableA 的 insert ,并还未 commite时,B程序也对tableA 进行insert 则此时会发生资源正忙的异常 就是锁表;
2)、锁表常发生于并发而不是并行(并行时,一个线程操作数据库时,另一个线程是不能操作数据库的,cpu 和i/o 分配原则)
4、减少锁表的概率:
减少insert 、update 、delete 语句执行 到 commite 之间的时间。
具体点批量执行改为单个执行、优化sql自身的非执行速度
如果异常对事物进行回滚。
二、mysql锁表的解决
#查看进程id,然后用kill id杀掉进程
show processlist;
或
SELECT * FROM information_schema.PROCESSLIST;
#查询正在执行的进程
SELECT * FROM information_schema.PROCESSLIST where length(info) >0 ;
#查询是否锁表
show OPEN TABLES where In_use > 0;
#查看被锁住的
SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS;
#等待锁定
SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS;
#杀掉锁表进程
kill 5601
-- 在navicate查询页面, 使用如下sql语句
select concat("kill", ID, ";") as command from information_schema.PROCESSLIST where HOST regext "some condtion";
mysql锁表原因及解决方法的更多相关文章
- MYSQL锁表问题的解决方法
本文实例讲述了MYSQL锁表问题的解决方法.分享给大家供大家参考,具体如下: 很多时候!一不小心就锁表!这里讲解决锁表终极方法! 案例一 mysql>show processlist; 参看sq ...
- informix 数据库锁表分析和解决方法
一.前言 在联机事务处理(OLTP)的数据库应用系统中,多用户.多任务的并发性是系统最重要的技术指标之一.为了提高并发性,目前大部分RDBMS都采用加锁技术.然而由于现实环境的复杂性,使用加锁技术又不 ...
- jmeter连接不上MySQL数据库的原因以及解决方法
1.Cannot create PoolableConnectionFactory (Client does not support authentication protocol requested ...
- mysql安装不上怎么办 mysql安装失败原因和解决方法
困难1:MySQL 5.1 安装过程中报apply security setting错误 1.卸载MySQL. 2.删除目录 C:\Documents and Settings\All Users\A ...
- MYSQL锁表问题解决
本文实例讲述了MYSQL锁表问题的解决方法.分享给大家供大家参考,具体如下: 很多时候!一不小心就锁表!这里讲解决锁表终极方法! 案例一 ? 1 mysql>show processlist; ...
- MySQL锁表解决方法
https://blog.csdn.net/a5582ddff/article/details/79566678 MySQL锁表解决方法 一.我的处理过程 1.查进程,主要是查找被锁表的那个进程的ID ...
- MySQL CPU 使用率高的原因和解决方法
用户在使用 MySQL 实例时,会遇到 CPU 使用率过高甚至达到 100% 的情况.本文将介绍造成该状况的常见原因以及解决方法,并通过 CPU 使用率为 100% 的典型场景,来分析引起该状况的原因 ...
- mysql死锁-查询锁表进程-分析锁表原因【转】
查询锁表进程: 1.查询是否锁表 show OPEN TABLES where In_use > 0; 2.查询进程 show processlist 查询到相对应的进程===然 ...
- mysql死锁-查询锁表进程-分析锁表原因
查询锁表进程: 1.查询是否锁表 show OPEN TABLES where In_use > 0; 2.查询进程 show processlist 查询到相对应的进程===然 ...
- MySQL 实例空间使用率过高的原因和解决方法
用户在使用 MySQL 实例时,会遇到空间使用告警甚至超过实例限额被锁定的情况.在 RDS 控制台的实例基本信息中,即会出现如下信息: 本文将介绍造成空间使用率过高的常见原因及其相应的解决方法.对于M ...
随机推荐
- GoLang之ACM控制台输入输出
转自:https://blog.csdn.net/weixin_52690231/article/details/125436414
- AWS RedShift实战应用SQL大全及经验分享[持续更新]
文章目录 前言 - 关于RedShift 一.数据维护篇 1.1 表结构操作 1.2 数据添加与查询 1.3 数据修改与删除 1.4 事物操作 二.SQL结构篇 2.1 使用with封装代码 2.2 ...
- html元素全屏展示
参数传入dom对象即可,注意不是jQuery对象,Vue下兼容 /** * 面板全屏展示 */ fullscreen: function () { if (this.isFullScreen) { / ...
- windows下运行.sh文件
1.安装git,配置git环境(D:\Tools\Git\cmd) .cmd命令检查是否安装成功(git --version). 2.打开Git Bash窗口,命令运行.sh文件. 3.运行.sh文件 ...
- C++并发编程实战(第2版)
这本书翻译的烂,写的也不好. 甚至不如看cppreference. 这本书英文叫C++ Concurrency in Action, Second Edition 英文原版也是垃圾,C++实在没有写得 ...
- WEB的安全性测试要素【转】
原文链接:http://www.cnblogs.com/zgqys1980/archive/2009/05/13/1455710.html WEB的安全性测试要素 1.SQL Injection(SQ ...
- guide, manual, tutorial之间的区别
总结:一般而言,guide表示用户指南,提供简要的信息:manual表示用户手册,提供较为完整深入的说明:tutorial表示教程,提供详细的说明,侧重于给没有经验的人一步一步进行详细的指导.实际情况 ...
- DoTween结束后删除对象
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; ...
- linux重置密码和单用户模式
CentOS7.9 CentOS7系统root密码丢失找回方法(史上最好) 1. 重新启动或开启CentOS7系统,在选择进入系统Grub菜单界面如下图1-1,根据提示按"e"小写 ...
- webpack从零开始打造react项目(更新中...)
创建项目 创建文件夹 webpack-test 使用编辑器打开文件夹,我们初始化管理包 npm init -y 生成一个默认的 pageage.json 文件 要想创建react项目,思考我们之前使 ...