范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

MySQL从入门到精通(九)MySQL锁,各种锁

  一、mysql锁的概述
  锁是计算机协调多个进程或线程并发访问某一资源的机制,在数据库中,除传统的计算资源(CPU、RAM、I/O)争用外,数据也是一种供许多用户共享的资源,如何保证数据并发访问的一致性,有效性是所有数据库必须解决的一个问题,锁冲突也是影响数据库并发访问性能的一个重要因素,从这个角度来说,锁对数据库而言是尤其重要,也更加复杂。MySQL中的锁,按照锁的粒度分为:1、全局锁,就锁定数据库中的所有表。2、表级锁,每次操作锁住整张表。3、行级锁,每次操作锁住对应的行数据。二、MySQL全局锁
  全局锁就是对整个数据库实例加锁,加锁后整个实例就处于只读状态,后续的DML的写语句,DDL语句,已经更新操作的事务提交语句都将阻塞。其典型的使用场景就是做全库的逻辑备份,对所有的表进行锁定,从而获取一致性视图,保证数据的完整性。但是对数据库加全局锁是有弊端的,如在主库上备份,那么在备份期间都不能执行更新,业务会受影响,第二如果是在从库上备份,那么在备份期间从库不能执行主库同步过来的二进制日志,会导致主从延迟。
  解决办法是在innodb引擎中,备份时加上--single-transaction参数来完成不加锁的一致性数据备份。
  添加全局锁: flush tables with read lock; 解锁 unlock tables。三、表级锁
  表级锁,每次操作会锁住整张表.锁定粒度大,发送锁冲突的概率最高,并发读最低,应用在myisam、innodb、BOB等存储引擎中。表级锁分为: 表锁、元数据锁(meta data lock, MDL)和意向锁。
  表锁又分为: 表共享读锁 read lock、表独占写锁write lock
  语法: 1、加锁 lock tables 表名 ... read/write
  2、释放锁 unlock tables 或者关闭客户端连接
  注意: 读锁不会阻塞其它客户端的读,但是会阻塞其它客户端的写,写锁既会阻塞其它客户端的读,又会阻塞其它客户端的写。大家可以拿一张表来测试看看。
  元数据锁,在加锁过程中是系统自动控制的,无需显示使用,在访问一张表的时候会自动加上,MDL锁主要作用是维护表元数据的数据一致性,在表上有活动事务的时候,不可以对元数据进行写入操作。为了避免DML和DDL冲突,保证读写的正确性。
  在MySQL5.5中引入了MDL,当对一张表进行增删改查的时候,加MDL读锁(共享);当对表结构进行变更操作时,加MDL写锁(排他).
  对应SQL
  锁类型
  说明
  lock tables xxx read/write
  shared_read_only/shared_no_read_write
  select/select ... lock in share mode
  shared_read
  与shared_read/shared_write兼容,与exclusive互斥
  insert/update/delete,select ... for update
  shared_write
  与shared_read/shared_write兼容,与exclusive互斥
  alter table ...
  exclusive
  与其它的DML都互斥
  查看元数据锁:
  select object_type,object_schema,object_name,lock_type,lock_duration from performance_schema_metadata_locks;
  意向锁,为了避免DML在执行时,加的行锁与表锁的冲突,在innodb中引入了意向锁,使得表锁不用检查每行数据是否加锁,使用意向锁来减少表锁的检查。意向锁分为,意向共享锁is由语句select ... lock in share mode添加。意向排他锁ix,由insert,update,delete,select…for update 添加。
  select object_schema,object_name,index_name,lock_type,lock_mode,lock_data from performance_schema.data_lock;四、行级锁
  行级锁,每次操作锁住对应的行数据,锁定粒度最小,发生锁冲突的概率最高,并发读最高,应用在innodb存储引擎中。
  innodb的数据是基于索引组织的,行锁是通过对索引上的索引项加锁来实现的,而不是对记录加的锁,对于行级锁,主要分为以下三类:
  1、行锁或者叫record lock记录锁,锁定单个行记录的锁,防止其他事物对次行进行update和delete操作,在RC,RR隔离级别下都支持。
  2、间隙锁Gap lock,锁定索引记录间隙(不含该记录),确保索引记录间隙不变,防止其他事物在这个间隙进行insert操作,产生幻读,在RR隔离级别下都支持。
  3、临键锁Next-key-lock,行锁和间隙锁组合,同时锁住数据,并锁住数据前面的间隙Gap,在RR隔离级别下支持。
  innodb实现了以下两种类型的行锁
  1、共享锁 S: 允许一个事务去读一行,阻止其他事务获得相同数据集的排他锁。
  2、排他锁 X: 允许获取排他锁的事务更新数据,阻止其他事务获得相同数据集的共享锁和排他锁。
  insert 语句 排他锁 自动添加的
  update语句 排他锁 自动添加
  delete 语句 排他锁 自动添加
  select 正常查询语句 不加锁 …
  select …lock in share mode 共享锁 需要手动在select 之后加lock in share mode
  select …for update 排他锁 需要手动在select之后添加for update
  默认情况下,innodb在repeatable read事务隔离级别运行,innodb使用next-key锁进行搜索和索引扫描,以防止幻读。针对唯一索引进行检索时,对已存在的记录进行等值匹配时,将会自动优化为行锁innodb的行锁是针对于索引加锁的,不通过索引条件检索数据,那么innodb将对表中的所有记录加锁,此时就会升级为表锁。索引上的等值查询如唯一索引,给不存在的记录加锁时,优化为间隙锁。索引上的等值查询如普通索引,向右遍历时最后一个值不满足查询需求时,next-key lock退化为间隙锁。索引上的范围查询如唯一索引,会访问到不满足条件的第一个值为止。
  间隙锁唯一目的是防止其它事务插入间隙,间隙锁可以共存,一个事务采用的间隙锁不会阻止另一个事务在同一间隙上采用的间隙锁。

美国这次是不是要放下身段,对从中国进口的医疗用品免除关税?美国特朗普政府已对从中国进口的100多种医疗用品(包括口罩手套消毒湿巾等)免除进口关税美国这次是不是要放下身段?反思一下疫情刚爆发时对中国的过激反应?美国是不是因为这次疫情,第一次阿特兹异响频发,出现异响,全额退换成空头支票近日,汽车门网发布了8月的投诉数据,各级别车型的投诉指数排行也相继出炉。值得一提的是,在8月中型车投诉指数排行中,曾经深陷异响门的马自达阿特兹,再次因异响问题跃居投诉排行榜榜首。从秋天的第一台电脑,用一台完美的电脑来温暖你男朋友的小心心导读说实话老程实在不知道秋分这个节气竟然也要开始发红包了,照此下去,以后是不是冬至也要发红包,毕竟是入冬第一份火锅,然后夏至是不是要有入夏的第一份冰淇淋了,难道情人节,妇女节,儿童关于30系列显卡买不到,老程有话要说等等党们再坚持坚持导读这段时间很多小伙伴找我打听30系列显卡什么时候铺货到市场,关于这个问题,老程现在基本上会天天骚扰一下市场里面的经销商,尤其是影驰在临沂地区的代理商,基本上我每天都会发信息问一下闲鱼网吧倒闭价格699闲鱼上卖垃圾电脑的套路解析导读相信很多对电脑或者DIY电脑感兴趣的人都会在闲鱼上面搜索硬件,有些对电脑不太懂的小伙伴也可能上闲鱼找一些合适的电脑,这让很多组装电脑的JS们找到了一个省房租水电,并且没有宣传费一体机,一个尴尬电脑的产物,为什么一体机电脑发展不起来导读今天有小伙伴过来找我想装一台一体机,老程翻遍了自己的仓库也没有找到一个一体机的屏幕,突然才想起来自己已经好久没有组装一体机了,原来收的一些一体机屏幕已经卖给网上的魔改电商,他们孩视宝护眼台灯孩子护眼好帮手台灯作为家庭中学习和办公的必备工具之一,但是台灯的质量也参差不齐,有的动辄上千元的台灯买回来之后,发现还不如几百元的台灯护眼效果好。尤其家中有儿童的家庭选择更是慎重再慎重。根据资料华为路由WS5200四核版详细评测除了快还有这些功能华为路由WS5200自前年发行以后,就成为了300元以下路由器的爆款,加宽四天线MUMIMO多设备收发技术以及华为独有的5G优选技术的加成,无疑秒杀了竞争对手。但是这还不算完,华为华为路由Q2Pro子母路由器横评华为荣耀路由器大乱斗说起路由器,市场上的产品真是有点满目琳琅,同时价格也有高有低,头上有长角的也有不长角的,但是到底什么样的路由器才是好路由器,或者什么样的路由器才是最适合的路由器,毕竟每个家庭的房屋这款手机用了真的回不去了吗一加7Pro深度体验(上篇)一加系列的手机在发布之前都是极客范儿或者数码圈所必须关注,西装暴徒和不讲究的已经被牢牢地钉在了一加手机身上,那么这次在一加7Pro身上又有哪些新标签呢,想必大家应该都知道了,90H华为移动路由4G路由2Pro深度体验插网插卡随你选路由器算是家庭网络分享的必备工具,但是市面上大多数路由器都是有线连接,即使也有可随身携带的热点共享器,但是其不稳定的网络信号又成为了消费者们的痛点。那么有没有一款路由器,插上网线后
走进特斯拉超级工厂点击右上角加关注,全国产经信息不错过在经历了一轮轮舆情风波后,特斯拉变得更加开放了。5月26日,记者开启了一场上海特斯拉超级工厂之旅,零距离感受这家创业公司的氛围。作为中国第一家外618值得入手的四款顶级旗舰,跌至新低价,几乎都是0差评时间一下子就来到了6月初,厂商们为了给618造势,也是放出了很多优惠,其目的就是刺激消费者的购买欲望,提升自家618的销量,但其中有些是提高价格后再降价,作为消费者一定要学会分辨,中国开始推广数字人民币,它能撼动美元地位?你敢用吗?近年来,网络支付已经在全中国普及,男女老少都会使用支付宝或者微信付款,而且全世界也只有中国,如此大范围地推广和使用网络支付。当欧美国家的国民还在用现金支付时,我们就算是在早餐时买两深度关注鸿蒙会带来什么中央纪委国家监委网站管筱璞李云舒6月3日,上海用户在华为全球旗舰店内体验鸿蒙操作系统。(图片来源视觉中国)设想一下,你在汽车上语音通话,熄火下车后可以把通话转移到手机,走到家门口再小米婉拒,前OPPO员工辱骂,荣耀华为做手机,他们就不会用鸿蒙华为的鸿蒙系统已经于昨日正式发布,虽然在手机应用和生态方面华为目前稍微有些逊色,但对于一个初生系统来说,这已经算是了不起的成就,而华为也通过鸿蒙系统向未来的无限互联踏出了第一步。想特斯拉Model3劲敌宝马i4实车亮相近日,海外媒体又曝光出了宝马i4的实车图。新车预计将在2022年第一季度正式登陆北美市场,其中i4eDrive40的起售价为55400美元(折合人民币约35。35万元),而i4M5全新的开始,荣耀50系列新机发布会定档,荣耀已经拿到安卓授权告别过去,迎接未来,完成过渡的王者荣耀正式迎来新生。旗下首款重磅产品荣耀50系列官宣定档,主打特色化卖点。荣耀也回应了近期网络争议的问题。华为和荣耀,之前在国内市场和海外市场正在疯iPhone13电池容量曝光,网友难怪12续航缩水,为新机做铺垫?苹果更新iOS14。5系统后遇到重大Bug,全球多地用户反映出现严重卡顿发热性能暴跌。苹果推出iOS14。6紧急救场。iOS14。6修复以上问题改善性能,新的问题出现续航明显变弱,618别观望了,中低端机就选这几款今年的618开启的格外早,各大手机厂商打的也是格外热闹。面对琳琅满目的手机产品,好多人又犯了选择困难症,一时间不知道怎么选,纠结ing。今天我们就以低预算为标准,推荐几款。一一加O昨夜今晨发生了什么?YiMagazine宁德时代计划在上海建新电池工厂据路透社6月3日报道,知情人士透露,宁德时代正计划在上海新建一家大型汽车电池工厂,继续其迅猛的扩张步伐,此举也将巩固其作为全球第一大电池供应商的领先地等等党又赢了!618来袭一加9R到手价只需2799元进入到6月份,也就是说一年一度的618年中狂欢即将打响。作为等等党,我们要做的就是备足弹药准备淘宝一波。而商家要做的就是为了在于其他商家的竞争中取得优势,放出更多的福利,在手机圈也