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

做普工招聘网站镇江seo快速排名

做普工招聘网站,镇江seo快速排名,wordpress 评论跳转,企业网站建设word文章目录 行级锁Record LockGap LockNext-Key Lock插入意向锁 表级锁表锁元数据锁(MDL)意向锁AUTO-INC 锁 全局锁 行级锁 Record Lock 记录锁有S锁(共享锁/读锁)和X锁(排他锁/写锁)之分,加完S…

文章目录

  • 行级锁
    • Record Lock
    • Gap Lock
    • Next-Key Lock
    • 插入意向锁
  • 表级锁
    • 表锁
    • 元数据锁(MDL)
    • 意向锁
    • AUTO-INC 锁
  • 全局锁

行级锁

Record Lock

记录锁有S锁(共享锁/读锁)和X锁(排他锁/写锁)之分,加完S锁可以接着加S锁,加完X锁不能加X/S锁。

Gap Lock

间隙锁,间隙锁之间是兼容的,即两个事务可以同时持有包含共同间隙范围的间隙锁,并不存在互斥关系,因为间隙锁的目的是防止插入幻影记录而提出的。

Next-Key Lock

Next-Key Lock 称为临键锁,是 Record Lock + Gap Lock 的组合,锁定一个范围,并且锁定记录本身,如果一个事务获取了 X 型的 next-key lock,那么另外一个事务在获取相同范围的 X 型的 next-key lock 时,是会被阻塞的。

插入意向锁

要插入数据的时候要知道插入位置有没有间隙锁,如果有的话,插入操作就会发生阻塞,直到拥有间隙锁的那个事务提交为止(释放间隙锁的时刻),在此期间会生成一个插入意向锁,表明有事务想在某个区间插入新记录,但是现在处于等待状态。
插入意向锁名字虽然有意向锁,但是它并不是意向锁,它是一种特殊的间隙锁(锁一个点),属于行级别锁。

表级锁

表锁

限制所有线程接下来的读写操作(包括本线程)

# 加锁
# 表级别的共享锁,也就是读锁;
lock tables 表名 read;
# 表级别的独占锁,也就是写锁;
lock tables 表名 write;
# 解除当前会话全部表锁
unlock tables

会话退出后当前会话的所有锁都会自动释放

元数据锁(MDL)

它的作用就是保证你在进行数据操作时表的结构不会变化,同时保证不会有多个线程修改表结构,我们不需要显示的使用 MDL,事务开始时自动上锁,事务结束自动解锁:

  • 进行数据处理时加的是 MDL 读锁
  • 进行表结构处理时加的是 MDL 写锁

申请 MDL 锁的操作会形成一个队列,队列中写锁获取优先级高于读锁,一旦出现 MDL 写锁等待,会阻塞后续该表所有数据处理操作。

意向锁

并不是真正意义上的加锁,而是告诉别的事务这里可能有什么类型的锁,对方知道后可以进行紧急避险,可以在不影响并发性的同时避免一些死锁的产生。
在InnoDB 中对行加共享锁/独占锁前需要在表级加一个对应的意向锁。

AUTO-INC 锁

表里的主键通常都会设置成自增的,这是通过对主键字段声明 AUTO_INCREMENT 属性实现的。
AUTO-INC 锁是特殊的表锁机制,锁不是再一个事务提交后才释放,而是再执行完插入语句后就会立即释放。
它的作用是保证获取递增的主键值时不会受别的事务干扰,MySQL 5.1.22开始这个锁变得更加轻量,在赋完值后就会自动解锁。

  • 当 innodb_autoinc_lock_mode = 0,就采用 AUTO-INC 锁,语句执行结束后才释放锁;
  • 当 innodb_autoinc_lock_mode = 2,就采用轻量级锁,申请自增主键后就释放锁,并不需要等语句执行后才释放。
  • 当 innodb_autoinc_lock_mode = 1:
    • 普通 insert 语句,自增锁在申请之后就马上释放;
    • 类似 insert … select 这样的批量插入数据的语句,自增锁还是要等语句结束后才被释放;

如果使用轻量级自增锁的时候,binlog 的日志格式最好使用row,这样在 binlog 里面记录的是主库分配的自增值,到备库执行的时候,主库的自增值是什么,从库的自增值就是什么。
不然的话容易出现数据不一致,比如事务A将查询结果插入的时候事务B进行插入可能会将数据插入查询出的数据之间。

全局锁

锁住整个数据库,让整个数据库变得只读,全局锁主要应用于做全库逻辑备份,这样在备份数据库期间,不会因为数据或表结构的更新,而出现备份文件的数据与预期的不一样。

# 打开全局锁
flush tables with read lock
# 关闭全局锁
unlock tables

关闭当前会话时会自动解锁

存在问题:执行期间会造成业务停滞,生产环境比较致命
解决方案:如果数据库引擎支持可重复读的话可以创建read view进行拷贝,这样其它业务还可以正常进展。
备份数据库的工具是 mysqldump,在使用 mysqldump 时加上 –single-transaction 参数的时候,就会在备份数据库之前先开启事务。这种方法只适用于支持「可重复读隔离级别的事务」的存储引擎。

http://www.hengruixuexiao.com/news/29372.html

相关文章:

  • 自建外贸网站做B2B网页自助建站
  • 北京建设公司网站滨州seo排名
  • 连云港网站建设服务想学手艺在哪里可以培训
  • 小说网站设计毕业论文经典软文案例100例
  • 淘宝店有给网站做优化am河南省疫情最新情况
  • 什么是网站功能手机端怎么刷排名
  • 网站图表怎么做的浏览器正能量网站免费
  • 重庆建筑特种作业查询网济南seo公司
  • 发簪做的比较好的网站中视频自媒体账号注册下载
  • 网站设计评分标准新东方英语线下培训学校
  • 容桂网站制作价格网络营销的六大特征
  • 大学网页制作与网站建设哪里可以引流到精准客户呢
  • 海外网站购物平台有哪些线上营销策划案例
  • 深圳网站开发企业网站优化要多少钱
  • 网站建设公司未来发展方向人民日报最新头条10条
  • 个人网站怎么做cpsseo智能优化公司
  • 网站建设流程表计算机培训班培训费用
  • 汝州市文明建设门户网站宣传推广
  • 龙岩天宫山天气预报冬镜seo
  • 做杂志的网站有哪些内容学生个人网页制作
  • 网站整站下载器 全站克隆页面图片视频下载 仿站专用源码工具软件学seo建网站
  • 如何去掉Wordpress访问网站苏州网站建设开发公司
  • 重庆网站设计总部徐州百度快照优化
  • 网站与客户端的区别商品标题优化
  • 阜宁网站建设找哪家好合肥疫情最新消息
  • 网站的后台一般用什么做的软文什么意思
  • 网站怎么做移动图片bt磁力搜索器
  • 网站的数据库是什么google搜索引擎入口
  • 男女直接做视频网站北京网站快速排名优化
  • 19年做网站简单网页制作模板