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

个人怎么交养老保险惠州百度搜索优化

个人怎么交养老保险,惠州百度搜索优化,开源分销系统,腾讯域名怎么建设网站✅ 一、按粒度分类(锁的范围大小) 1. 表级锁(Table Lock) 锁住整张表粒度大,开销小,并发性差常见于:MyISAM 引擎 📌 示例: LOCK TABLES user WRITE; -- 会锁住整个 u…

✅ 一、按粒度分类(锁的范围大小)

1. 表级锁(Table Lock)

  • 锁住整张表
  • 粒度大,开销小,并发性差
  • 常见于:MyISAM 引擎

📌 示例:

LOCK TABLES user WRITE;
-- 会锁住整个 user 表,其他线程无法写入

2. 行级锁(Row Lock)

  • 锁住一行数据
  • 粒度小,开销大,并发性高
  • 常见于:InnoDB 引擎

📌 示例:

BEGIN;
SELECT * FROM user WHERE id = 1 FOR UPDATE;
-- 只锁住 id=1 的那一行

3. 页级锁(Page Lock)

  • 锁住一页数据(介于表锁与行锁之间)
  • MySQL 不常用,常见于某些数据库如 Oracle、SQL Server
  • MySQL 中的 BDB 引擎 支持

✅ 二、按锁的类型分类(访问行为)

1. 共享锁(Shared Lock / S 锁)

  • 允许多个事务同时读取一行,不能写
  • 用于实现并发读取一致性

📌 示例:

SELECT * FROM user WHERE id = 1 LOCK IN SHARE MODE;

2. 排他锁(Exclusive Lock / X 锁)

  • 只允许一个事务读取 + 修改,不能有其它事务访问
  • 修改数据前必须加排他锁

📌 示例:

SELECT * FROM user WHERE id = 1 FOR UPDATE;

✅ 三、InnoDB 引擎中的特殊锁

1. 意向锁(Intention Lock)

  • InnoDB 为了支持多粒度锁并存而引入的机制,自动加锁,无需手动控制。
  • 分为:
    • 意向共享锁(IS)
    • 意向排他锁(IX)

✅ 作用:告诉系统“我要在某些行上加 S 锁/X 锁”,避免和表锁冲突。


2. Gap Lock(间隙锁)

  • 锁住一个“值之间的范围”
  • 典型场景:防止幻读

📌 示例:

SELECT * FROM user WHERE age > 18 FOR UPDATE;
-- 锁住所有满足 age > 18 的“间隙”

3. Next-Key Lock(临键锁)

  • Gap Lock + 行锁 的组合
  • 也用于防止幻读

4. Record Lock(记录锁)

  • 真正只锁住一行
  • 是最基础的行锁形式

✅ 四、全局锁(Global Lock)

  • 通常用于备份全库时加锁
  • 会锁住整个数据库实例,不建议在线使用

📌 示例:

FLUSH TABLES WITH READ LOCK;

✅ 五、按加锁机制划分:

1、乐观锁

乐观锁基于这样的假设:冲突在系统中出现的频率较低,因此在数据库事务执行过程中,不会频繁地去锁定资源。相反,它在提交更新的时候才检查是否有其他事务已经修改了数据。

可以通过在数据表中使用版本号(Version)或时间戳(Timestamp)来实现,每次读取记录时,同时获取版本号或时间戳,更新时检查版本号或时间戳是否发生变化。

如果没有变化,则执行更新并增加版本号或更新时间戳;如果检测到冲突(即版本号或时间戳与之前读取的不同),则拒绝更新。


2、悲观锁

悲观锁假设冲突是常见的,因此在数据处理过程中,它会主动锁定数据,防止其他事务进行修改

可以直接使用数据库的锁机制,如行锁或表锁,来锁定被访问的数据。常见的实现是 SELECT FOR UPDATE 语句,它在读取数据时就加上了锁,直到当前事务提交或回滚后才释放。


举例:如何解决库存超卖问题?

按照乐观锁的方式:
使用 UPDATE ... WHERE 结合版本号 / 库存条件,如果更新失败,说明有竞争,重试操作

UPDATE inventory SET count = count - 1, version = version + 1 WHERE product_id = 1 AND version = current_version;

按照悲观锁的方式:
使用 SELECT ... FOR UPDATE 加排他锁,确保当前事务结束前,其他事务无法修改数据。

START TRANSACTION;
SELECT * FROM inventory WHERE product_id = 1 FOR UPDATE;
UPDATE inventory SET count = count - 1 WHERE product_id = 1;
COMMIT;

🧠 面试高频陷阱

问题易错理解正确认识
SELECT * FROM table WHERE id = 1 会加锁吗?会加锁❌ 默认不会加锁,除非加 FOR UPDATE
行锁一定是锁一行?是的❌ 有可能是间隙锁或临键锁
MyISAM 支持事务和行锁?支持❌ MyISAM 不支持事务,也不支持行锁

🔐 MySQL 锁分类总览图(Mermaid Mindmap)


🧠 图示说明:

  • 四大主干维度:按照粒度行为类型InnoDB 特性特殊用法分类;
  • 每种锁都附有简要描述使用示例,方便记忆;
  • 特别标出 InnoDB 专属锁机制,面试考频高。

文章转载自:

http://h1pHd2Pf.bxbnf.cn
http://kkLBdTMh.bxbnf.cn
http://tldJc0ao.bxbnf.cn
http://eBxSpCWO.bxbnf.cn
http://WmrkAxit.bxbnf.cn
http://OxDAdiCr.bxbnf.cn
http://d60EFgvr.bxbnf.cn
http://SD3gocIy.bxbnf.cn
http://MXCzIvDr.bxbnf.cn
http://xxBkayyA.bxbnf.cn
http://8S7xymhg.bxbnf.cn
http://e77gNeaX.bxbnf.cn
http://9UaH6skL.bxbnf.cn
http://oxkND0Ae.bxbnf.cn
http://ocSkRQuw.bxbnf.cn
http://56beXT7I.bxbnf.cn
http://Phk1OfyX.bxbnf.cn
http://fN1n9uoU.bxbnf.cn
http://KcdWkLxa.bxbnf.cn
http://Wj1P67xe.bxbnf.cn
http://ePHGxOFU.bxbnf.cn
http://kN8bgDnM.bxbnf.cn
http://swEOicPH.bxbnf.cn
http://aidBe5Ib.bxbnf.cn
http://PzMgAlQI.bxbnf.cn
http://xo4QQKLx.bxbnf.cn
http://BKQmqpxy.bxbnf.cn
http://KpBGzPZF.bxbnf.cn
http://eL8D2IGI.bxbnf.cn
http://ZKcVZQ5w.bxbnf.cn
http://www.dtcms.com/wzjs/651462.html

相关文章:

  • 福州做彩票app网站如何建免费的企业网站
  • 网站注册怎么注销wordpress+移动
  • 深圳自适应网站开发多少钱怎么制作网站视频播放器
  • 定西市城乡建设局网站php技术应用于中小企业网站开发
  • 网站策划500字品牌网站设计图片
  • 福州品牌网站设计做调查赚钱的网站
  • 如何制作社交网站网站推广投放
  • phpcms 网站模板site网站连通率0%怎么解决
  • 赣州网站建设培训网站无备案号怎么办
  • 成都市建设工程施工安监站网站wordpress性能优化插件
  • phpcms 怎么做视频网站首页怀化seo优化
  • 百度提交网站珠海公众号开发公司
  • 收款网站怎么建设磁力搜索器 磁力猫在线
  • 深圳市官网网站建设报价北京海淀建设中路哪打疫苗
  • 甘肃省引洮工程建设管理局官方网站互联网开发软件
  • 网站开发设计步骤网上商店是什么
  • 网站排名优化价格格瑞特网站建设
  • 会网站建设好吗阿里巴巴网站怎么做
  • 顺德网站建设域名怎样在网站做友情链接
  • 如何联系网站管理员中国住房建设部网站首页
  • 网站推广的途径和要点wordpress登录返回
  • 企业 手机门户网站怎么把网站源码
  • 做健康食品的网站做公司网站需要准备什么科目
  • 长宁建设机械网站做网站的学什么
  • 字体在线生成器seo站内优化公司
  • 国外有做塑料粒子的网站吗网站开发和数据库哪个有前途
  • 婚纱摄影网站开发的目的怎么创建二级域名
  • 公司网站asp后台维护如何海外网站建设
  • 网站推广方法是什么绵阳住房和城市建设局网站官网
  • 鄂州网站开发怎样让百度快速收录网站