首页 > 其他分享 >锁表的情形和如何解决

锁表的情形和如何解决

时间:2024-04-15 10:24:55浏览次数:27  
标签:事务 索引 锁表 情形 并发 死锁 解决 表级

缩表的情形

  • 大事务操作:如果一个事务涉及到大量的数据修改、插入或删除,会占用表级锁,影响其他事务的并发操作。
  • 长事务:长时间执行的事务会持有锁资源,导致其他事务等待,增加锁表风险。
  • 无索引或不当索引:没有或者使用不合适的索引会导致查询效率低下,需要锁住更多的行或表。
  • 死锁:两个或多个事务相互等待对方释放资源,形成死锁,导致涉及的表被锁住。
  • 高并发:在高并发环境下,大量的事务同时竞争资源,可能导致某些事务无法获取所需的锁,从而影响正常的操作。
  • 不同的锁级别:如果不同事务使用了不同的锁级别,比如某个事务使用了表级锁而另一个事务使用了行级锁,可能导致锁竞争和表级锁的出现

如何解决

  • 优化sql语句
  • 分库分表
  • 使用行级锁,for update\for share 
  • 避免长事务
  • 加入缓存
  • 定时清理数据,释放锁资源

标签:事务,索引,锁表,情形,并发,死锁,解决,表级
From: https://www.cnblogs.com/zhangzheforever/p/18135280

相关文章

  • "(UE4Editor.exe中)处有未经处理的异常:0xC0000005:读取位置0x0000000000000000时发生
    报错情况:使用ue4.27Slate编写Widget时想通过获取Worl(通过本地PlayerController获取)来实现“设置定时任务为在音乐结束后自动触发函数”的功能ps:定时执行函数代码 解决方法:使用GWorld替换掉通过第0号PlayerController获取世界 原因分析:(由于本人校验较少,暂做以下估计)在......
  • Redis报错:CROSSSLOT Keys in request don't hash to the same slot的解决方案
    最近,项目上线的时候,出现了一个Redis的报错:CROSSSLOTKeysinrequestdon'thashtothesameslot,这个在内网环境下无法复现,因为正式环境的Redis是cluster集群模式,而我们内网环境是单机模式。(后面我在内网也部署了一个Redis集群,具体见我这一篇文章《使用Docker搭建RedisCluste......
  • 解决编译redis报错zmalloc.h:50:10: fatal error: jemalloc/jemalloc.h: No such file
    编译redis时报错:zmalloc.h:50:10:fatalerror:jemalloc/jemalloc.h:Nosuchfileordirectory,执行:#sudomakeMALLOC=libc1即可成功 需要先运行“makedistclean”,它设置删除所有早期的编译文件,然后运行“make”,这样就得到了redis服务器程序的新编译。执行后成功编......
  • 如何解决node.js运行mysql报错?
    首先检查mysql客户端的密码是否正确正确后提示我没有安装mysql模板 在文件目录终端下输入cnpminstall-gmysql进行安装这时候运行还是显示错误上网搜了一下说是登录数据库的客户端跟mysql8.0不兼容了,mysql8.0密码认证采用了新的密码格式[解决方法]打开命令管理器进入m......
  • thinkphp+vue跨域报错解决方案
     使用vue的axios.post向后台服务器的发送数据时报错:CORSpolicy:Responsetopreflightrequestdoesn'tpassaccesscontrolcheck:No'Access-Control-Allow-Origin'headerispresentontherequestedresource. 解决办法在public/index.php文件中添加以下代码://......
  • PowerDesigner 业务流程/数据建模软件和元数据管理解决方案
    拓展阅读数据库设计工具-08-概览数据库设计工具-08-powerdesigner数据库设计工具-09-mysqlworkbench数据库设计工具-10-dbdesign数据库设计工具-11-dbeaver数据库设计工具-12-pgmodeler数据库设计工具-13-erdplus数据库设计工具-14-NavicatDataModeler数据库设计工具-......
  • Tomcat启动闪退的10个解决小技巧
    引言大家好!在我们日常开发中,使用Tomcat作为Web服务器是相当常见的。然而,遇到Tomcat启动后立即闪退的问题也不是什么稀罕事。这种情况可能会让人感到困惑和沮丧,特别是当你急需完成一个项目或者修复一个重要的bug时。不过,别担心,这篇文章将为你提供一些解决Tomcat启动闪退问题......
  • [gnome终端反应慢]记录一次Linux终端卡顿及其解决
    2024Apr13作为一位Ubuntu用户,坚持使用下去的动力首先其实就是这个系统极低的资源占用,但在这一天。在参加比赛的这一天,出现了意外。事情发生在我对系统进行更新之后,我突然发现终端变得非常卡顿,无论是输入字符,还是打开vim编辑代码,每次按下键盘,都需要接近1s的时间才能有响应,甚至v......
  • 阿中系统的问题与解决
    1.获取不到数据库的类型原因:修改了配置文件为nacos,导致在获取nacos之前执行代码导致dbType为null解决:IdTypeApplicationContextInitializer修改为IdTypeApplicationContextInitializer这个执行在nacos获取dbType变量之后,所以dbType不会为null2.怎么修改文件存储的方式3.中......
  • 但是mac本连接苹果机时总是闪现请信任该电脑,导致不能连接电脑的解决方案
    解决方法是把USB进程杀掉,拔下设备,然后重新连接。终端运行命令杀掉USB进程:$sudokillall-STOP-cusbd然后需要输入电脑解锁密码,输入密码(不会显示,直接输入就好)之后,回车。然后拔下设备,重新连接。在macOS中,sudokillall-STOP-cusbd 命令的含义如下:sudo:以管理员权限......