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

wordpress中文企业网站产品怎么在网上推广

wordpress中文企业网站,产品怎么在网上推广,男女做网站,分销系统商城1、全局锁 加上全局锁后整个数据库就处于只读状态了,这时其他线程执行以下操作,都会被阻塞: 对数据的增删改操作,比如 insert、delete、update等语句;对表结构的更改操作,比如 alter table、drop table 等…

1、全局锁

加上全局锁后整个数据库就处于只读状态了,这时其他线程执行以下操作,都会被阻塞:

  • 对数据的增删改操作,比如 insert、delete、update等语句;
  • 对表结构的更改操作,比如 alter table、drop table 等语句。

全局锁的使用场景

  1. 逻辑备份:全局锁的典型使用场景是进行全库逻辑备份,例如使用 mysqldump 工具。在备份期间,整个库处于只读状态,确保备份的数据是一致的。
  2. 主从切换:在重新配置主从复制时,可以使用全局锁来确保不会有其他线程对数据库进行更新,从而保持数据一致性。

可以看出再加上全局锁后数据库的除查询外的其他所有业务都被阻塞住了,性能一定很低下。我们可以再可重复读的隔离级别下进行数据备份,备份的数据都是再开启事务那一刻的数据,就不要开启全局锁来控制并发操作,防止破坏数据库一致性了。

2、表锁

  2.1表锁

  • 表锁是一种粗粒度的锁,它会锁定整个表,除了会限制别的线程的读写外,也会限制本线程接下来的读写操作。
  • 表锁适用于特定的场景,但通常不推荐使用,因为它会影响并发性能。

 2.2意向锁

  • 意向锁是一种表级锁,用于指示其他事务是否已经持有了行级锁或表级锁。
  • 意向锁不会阻塞其他事务,只是作为一种标记。
  • 什么时候加意向锁:
    • 在获取行级锁之前,在获取表级锁之前都需要先加上意向锁。

    • 意向锁的存在表示其他事务可能已经在该表上加了表锁/行级锁,因此事务在获取表级锁/行锁之前需要先检查意向锁。
  • 意向锁的目的是为了快速判断表里是否有记录被加锁

2.3 元数据锁(MDL)

这个锁其实是为了防止再操作数据库表中数据时,表的结构发生了改变。

  • 对一张表进行 CRUD 操作时,加的是 MDL 读锁
  • 对一张表做结构变更操作的时候,加的是 MDL 写锁
  • 读锁和读锁不互斥,读写锁互斥。再MDL锁等待队列中,写锁优先级高于读锁。

MDL 是在事务提交后才会释放,这意味着事务执行期间,MDL 是一直持有的。

 2.4 AUTO-INC 锁

  • AUTO-INC 锁是特殊的表锁机制,锁不是再一个事务提交后才释放,而是再执行完插入语句后就会立即释放

  • 在插入数据时,会加一个表级别的 AUTO-INC 锁,然后为被 AUTO_INCREMENT 修饰的字段赋值递增的值,等插入语句执行完成后,才会把 AUTO-INC 锁释放掉。

  • nnoDB 存储引擎提供了个 innodb_autoinc_lock_mode 的系统变量,是用来控制选择用 AUTO-INC 锁,还是轻量级的锁。

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

3、行锁

 3.1 记录锁(Record Lock)

        这个锁,锁的是一条记录,有S锁(共享锁)和X锁(排它锁)之分。其中SS不互斥,SX互斥、XX互斥。普通的select查询语句不会加锁。他是通过MVCC进行快照读。像快照读才会进行加锁,具体加的是S锁还是X锁要看执行的语句。

SELECT ... LOCK IN SHARE MODE;                加共享锁

SELECT ... FOR UPDATE;                                加互斥锁

select * from t_test where id = 1 for update;   给id为1的记录加上互斥锁,待事务结束释放锁

  3.2 间隙锁(Gap Lock )

        只存在于可重复读隔离级别,目的是为了解决可重复读隔离级别下幻读的现象。

假设,表中有一个范围 id 为(3,5)间隙锁,那么其他事务就无法插入 id = 4 这条记录了,这样就有效的防止幻读现象的发生。

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

 3.3 Next-Key Lock(临键锁)

  临键锁是 Record Lock + Gap Lock 的组合,锁定一个范围,并且锁定记录本身。

        假设,表中有一个范围 id 为(3,5] 的 next-key lock,那么其他事务即不能插入 id = 4 记录,也不能修改 id = 5 这条记录。next-key lock 是包含间隙锁+记录锁的,如果一个事务获取了 X 型的 next-key lock,那么另外一个事务在获取相同范围的 X 型的 next-key lock 时,是会被阻塞的。

 3.4 插入意向锁

        一个事务在插入一条记录的时候,需要判断插入位置是否已被其他事务加了间隙锁(next-key lock 也包含间隙锁)。

        如果有的话,插入操作就会发生阻塞,直到拥有间隙锁的那个事务提交为止(释放间隙锁的时刻),在此期间会生成一个插入意向锁,表明有事务想在某个区间插入新记录,但是现在处于等待状态。

        当事务 A 还没提交的时候,事务 B 向该表插入一条 id = 4 的新记录,这时会判断到插入的位置已经被事务 A 加了间隙锁,于是事物 B 会生成一个插入意向锁,然后将锁的状态设置为等待状态。此时事务 B 就会发生阻塞,直到事务 A 提交了事务。

插入意向锁名字虽然有意向锁,但是它并不是意向锁,它是一种特殊的间隙锁,属于行级别锁

如果说间隙锁锁住的是一个区间,那么「插入意向锁」锁住的就是一个点。因而从这个角度来说,插入意向锁确实是一种特殊的间隙锁。

PS:MySQL 加锁时,是先生成锁结构,然后设置锁的状态,如果锁状态是等待状态,并不是意味着事务成功获取到了锁,只有当锁状态为正常状态时,才代表事务成功获取到了锁。

http://www.hkea.cn/news/732391/

相关文章:

  • 网上可以自学什么技术win7系统优化软件
  • 嘉兴建站软件如何做好企业网站的推广
  • 在凡科做网站短视频推广
  • 深圳推广公司推荐q群排名优化软件
  • 什么网站做简历模板宁德市医院
  • 用什么软件做公司网站游戏推广赚佣金的平台
  • 购物网站 后台模板河北seo技术培训
  • 聊城建设委员会官方网站google seo
  • 广西建设网郭业棚seo推广具体做什么
  • 武汉网站seo诊断谷歌下载官网
  • 做地方网站能赚钱吗免费seo网站诊断
  • 图片设计在线网站推广优化外包便宜
  • 武汉平价做网站网络软文推广案例
  • 新产品线上推广方案鞍山seo外包
  • 网站建网站建设和优佛山网络推广培训
  • 毕业设计做网站怎么样微信crm管理系统
  • 个人网站开发多少钱电脑培训班零基础
  • 互联网有哪些岗位宁波免费seo在线优化
  • 惠州做棋牌网站建设哪家技术好哪里的网络推广培训好
  • 如何做线上赌博的网站推广策略有哪些方法
  • 男的女的做那个视频网站百度收录需要多久
  • 大通县wap网站建设公司网站免费制作
  • 哪个网站教做公众号甘肃百度推广电话
  • 网站怎么让百度收录广告网络推广
  • 小型网站设计及建设论文定制网站制作公司
  • 视频网站建设费用排名优化网站seo排名
  • 怎么自己做网站服务器linux百度账号查询
  • 梧州网站推广方案百度热搜 百度指数
  • 网站不兼容ie6自助建站模板
  • 甘肃网站建设公司百中搜优化软件