首页 > 数据库 >MySQL数据库被锁表你有遇到过吗?

MySQL数据库被锁表你有遇到过吗?

时间:2023-10-09 18:55:29浏览次数:53  
标签:语句 insert 锁表 数据库 MySQL sql 执行

1.被锁原因

1、锁表发生在insert update 、delete 中;

2、锁表的原理是 数据库使用独占式封锁机制,当执行上面的语句时,对表进行锁住,直到发生commite 或者 回滚 或者退出数据库用户;

3、锁表的原因 :

3.1、A程序执行了对 tableA 的 insert ,并还未 commite时,B程序也对tableA 进行insert 则此时会发生资源正忙的异常 就是锁表;

3.2、锁表常发生于并发而不是并行(并行时,一个线程操作数据库时,另一个线程是不能操作数据库的,cpu 和i/o 分配原则)

4、减少锁表的概率:

减少insert 、update 、delete 语句执行 到 commite 之间的时间。
具体点批量执行改为单个执行、优化sql自身的非执行速度
如果异常对事物进行回滚

2.MySQL锁表的解决

执行查询sql

select * from information_schema.processlist where command not in ('Sleep') ORDER BY time desc;

通过此 sql 可以查询到以下内容:

sql 已经按照阻塞时长从大到小排序,找到耗时长的记录 id ,kill 即可:
kill id
通过此命令也可以查询到 mysql 的慢 sql 语句,进行优化,info 字段即为具体执行的 sql 语句。

标签:语句,insert,锁表,数据库,MySQL,sql,执行
From: https://www.cnblogs.com/FatSheepKiller/p/17752886.html

相关文章

  • JXNU数据库_数据库基本SQL操作
    我永远的乌托邦frompixiv_水星领航员基本表的定义,删除和修改1.定义基本表(CREATETABLE):要在数据库中定义一个新的基本表,你可以使用CREATETABLE语句。以下是一个创建名为"Employees"的基本表的示例:CREATETABLEEmployees(EmployeeIDINTPRIMARYKEY,Fi......
  • 网安周报|Mixin Network 云服务商数据库遭到攻击,涉案金额约 2 亿美元
    1、MixinNetwork云服务商数据库遭到攻击,涉案金额约2亿美元MixinNetwork是一个开源的数字资产点对点交易网络,今天在Twitter上宣布,由于该平台遭受了黑客攻击,存款和取款立即暂停。据报道,该攻击的目标是Mixin云服务提供商的数据库,涉案金额约2亿美元。由于在黑客攻击中损失了大量资......
  • openGauss学习笔记-94 openGauss 数据库管理-访问外部数据库-mysql_fdw
    openGauss学习笔记-94openGauss数据库管理-访问外部数据库-mysql_fdwopenGauss的fdw实现的功能是各个openGauss数据库及远程服务器(包括数据库、文件系统)之间的跨库操作。目前支持的远程服务器类型包括Oracle、MySQL(MariaDB)、openGauss(postgres_fdw)、file_fdw、dblink。mysql_f......
  • 数据库MYSQL常用
    1命令操作数据库相关1.1连接和退出mysql服务#账号密码方式(我的本地因为暂时没有密码,所以不需要输入密码)mysql-hlocalhost-P3306-uroot-proot#退出\q1.2数据库操作1.2.1创建数据库createdatabasemydemo;1.2.2显示全部的数据库showdatabases;1.2......
  • 安装Mysql详细步骤
    一、下载安装包地址:https://downloads.mysql.com/archives/community/-根据需要选择安装版本二解压并创建配置文件,创建数据目录1将下载的压缩包解压2在bin目录同级下创建一个文件,命名为my.ini3在bin目录同级下创建一个文件夹,命名为data如图:三编辑配......
  • Django 数据库--values_list 指定字段取值及 distinct 去重处理
    通过QuerySet会返回model的所有字段,通过obj.field_name即可获取对应字段的数据values():获取某一个或者某几个字段的数据指定字段使用values()指定参数可以仅仅返回相应字段的字典列表,如:name_dict_list=Project.objects.values('name')则name_dict_list= <Q......
  • MYSQL-sql语句示例
    数据库操作:创建数据库:CREATEDATABASEdatabase_nameCHARACTERSETutf8mb4COLLATEutf8mb4_unicode_ci;删除数据库:DROPDATABASEIFEXISTSdatabase_name;切换数据库:USEdatabase_name;表的管理:创建表:CREATETABLEtable_name(column1datatypeconstraint,colu......
  • Mysql高级sql语句
    1.高级sql语句(进阶查询一)1.1select语法:SELECT"字段"FROM"表名";示例:selectnamefromhome;selectidfromhome2;1.2distinct语法:SELECTDISTINCT"字段"FROM"表名";SELECTDISTINCTStore_NameFROMStore_Info;1.3where有条件......
  • mysql 存储过程
    存储过程实例前提准备创建表createtabletable1(namevarchar(10));createtableMatches(idint(10)auto_incrementnotnull,MATCHNOint(5)notnull,TEAMNOVarchar(6)notnull,PLAYERNOint(7)notnull,WONInt(8)notnull,LOSTvarchar(2),primarykey(......
  • mysql用户权限
    mysql创建用户权限创建用户MySQL中的用户帐号由用户名,以及使用@字符分隔的主机名组成。CREATEuseruser_accountIDENTIFIEDBYpassword;例:createusersuper@localhostIDENTIFIEDBY'123456';//localhost主机连接到MySQL数据库服务器createusersuper@'%'IDENTI......