当前位置: 首页 > wzjs >正文

做代理的网站提高工作效率图片

做代理的网站,提高工作效率图片,温州做网站哪里好,襄阳做网站多少钱文章目录 一、意向锁二、死锁应该如何避免死锁问题? 总结 一、意向锁 在表获取共享锁或者排它锁时,需要先检查该表有没有被其它事务获取过X锁,通过意向锁可以避免大量的行锁扫描,提升表获取锁的效率。意向锁是一种表级锁&#xf…

文章目录

  • 一、意向锁
  • 二、死锁
    • 应该如何避免死锁问题?
  • 总结


一、意向锁

在表获取共享锁或者排它锁时,需要先检查该表有没有被其它事务获取过X锁,通过意向锁可以避免大量的行锁扫描,提升表获取锁的效率意向锁是一种表级锁,主要目的是显示事务正在锁定某行或者试图锁定某行

意向共享锁(IS锁):事务计划给记录加行共享锁,事务在给一行记录加共享锁前,必须先取得该表的 IS 锁
意向排他锁(IX锁):事务计划给记录加行排他锁,事务在给一行记录加排他锁前,必须先取得该表的 IX 锁

在这里插入图片描述
1、意向锁是由InnoDB存储引擎获取行锁之前自己获取的 ;
2、意向锁之间都是兼容的,不会产生冲突 ;
3、意向锁存在的意义是为了更高效的获取表锁(表格中的X和S指的是表锁,不是行锁!!!) ;
4、意向锁是表级锁,协调表锁和行锁的共存关系。主要目的是显示事务正在锁定某行或者试图锁定某行。

什么时候需要用到表级锁?

大部分时候都是使用的行级锁,因为事务和行锁通常是为什么选择InnoDB存储引擎的理由,获取表级锁的sql如下:

//获取stu表的读锁
lock table stu read;
//获取stu表的写锁
lock table stu write;

当碰到如下情况时,可以选择使用表级锁:
1、数据量大:事务需要更新大部分数据或者全部数据,表又比较大,如果使用默认的行级锁,不仅会导致事务执行效率低,还有可能造成其它事务长时间等待和锁冲突。
2、事务复杂:当事务较为复杂,涉及多个表时,很可能引起死锁,造成大量事务回滚。


二、死锁

什么时候会产生死锁?

MyISAM 表锁是不会产生的死锁问题的, 这是因为在MyISAM存储引擎下,只支持表级锁,颗粒度比较大,并发能力一般,总是一次获得所需的全部锁,要么全部满足,要么等待,因此不会出现死锁。但在 InnoDB 中,除单个 SQL 组成的事务外,锁是逐步获得的,锁的颗粒度比较小,死锁是可能的。所以常见的MySQL死锁问题多出现在InnoDB存储引擎中
在这里插入图片描述

死锁问题一般都是我们自己的应用造成的,和多线程编程的死锁情况相似,大部分都是由于我们多个线程在获取多个锁资源的时候,获取的顺序不同而导致的死锁问题。

应该如何避免死锁问题?

在实际对数据库的多个表做更新的时候,应对这些表按相同的顺序进行更新操作,以防止锁冲突导致死锁问题
1、合理设计事务
缩小事务范围:尽量将事务设计得尽量短一点,减少锁的持有时间;将大事务拆分为多个小事务,减少锁竞争的可能性。
避免嵌套事务和复杂操作: 减少事务中涉及的表和行数量,避免同时锁定多个资源;避免在事务中执行SELECT ... FOR UPDATELOCK IN SHARE MODE时查询大量数据。
2、保持锁的顺序一致
固定资源的访问顺序:所有事务必须按相同的顺序访问资源,避免事务形成相互等待锁的环路。
3、优化索引设计
为查询条件添加索引:确保所有WHERE、JOIN、ORDER BY条件字段有合适索引,避免全表扫描导致的表锁或间隙锁。
避免索引合并:索引合并可能导致多个索引的锁竞争,引发死锁,可以通过创建联合索引解决。

MySQL如何处理死锁问题?

//sql死锁提示
ERROR 1213 (40001): Deadlock found when trying to get lock; try restarting transaction

当事务被阻塞或者死锁出现时,mysqld检测到事务阻塞的超时时间,会将事务回滚并提示事务处理失败。

避免MySQL死锁的核心原则是:缩短事务时间,减少锁持有时间;统一资源访问顺序,避免锁竞争环路;优化索引设计,减少锁范围;监控与日志分析,及时定位并修复潜在问题。


总结

锁在使用时的优化建议:

1、尽量使用较低的隔离级别;
2、设计合理的索引并尽量使用索引访问数据,使加锁更加准确,减少锁冲突的机会提高并发能力;
3、选择合理的事务大小,小事务发生锁冲突的概率小;
4、不同的程序访问一组表时,应尽量约定以相同的顺序访问各表,对一个表而言,尽可能以固定的顺序存取表中的行。这样可以大大减少死锁的机会;
5、尽量用相等条件访问数据,这样可以避免间隙锁对并发插入的影响;
6、不要申请超过实际需要的锁级别;
7、除非必须,查询时不要显示加锁。

http://www.dtcms.com/wzjs/522147.html

相关文章:

  • 云奇网站建设百度公司招聘官网最新招聘
  • 衡水网站建费用百度广告点击一次多少钱
  • 哈尔滨公司网站团队网络营销服务有哪些
  • 哈尔滨免费做网站网络推广文案
  • 福田网站建设标准数据seo托管
  • 学做网站论坛会员账户seo行业网
  • 做网站有哪个空间铜川网站seo
  • 郑州软件开发公司网站开发外包网站
  • 做网站申请哪类商标宁波网站推广专业服务
  • 360广告联盟怎么做网站外贸网站推广费用
  • 汕头建设网站seo优化技术招聘
  • 网络推广就是做网站吗重庆seo招聘
  • 青岛网站建设全包百度如何发布作品
  • 学校网站模板html游戏推广员好做吗
  • 网站建设维护相关人员培训合肥关键词排名工具
  • 支付网站建设会计分录外贸网络营销平台
  • 邯郸高端网站建设有了域名怎么建网站
  • 服务商平台登录全国最好网络优化公司
  • 网站开发工具报告今日十大头条新闻
  • 前端网站重构怎么做营销型网站推广方案
  • 做景观园林的网站是网络精准推广
  • 高校信息化建设 网站网络推广需要什么
  • 毕设敦煌壁画网站开发选题背景百度认证营销顾问
  • 英文网站做百度权重有意义吗百度投诉中心热线
  • 移动网站开发框架站长统计入口
  • 食品企业网站建设方案应用宝下载
  • pc端网站怎么做自适应手机端新闻稿代写
  • 聊城网站建设价位seo优化设计
  • 扬州网站建设yzbosi自己建网站需要钱吗
  • java做的网站怎么发布焊工培训内容