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

常州模板建站代理seo做得比较好的公司

常州模板建站代理,seo做得比较好的公司,网站设计的大公司,电影网站 模板大家好,我是冰点,今天给大家带来,关于MySQL中的锁的使用。 我首先提个问题,大家知道什么是 乐观锁、悲观锁、共享锁,、排它锁、行锁、表锁,以及每种锁的使用场景吗? !! 背景:最近在各…

大家好,我是冰点,今天给大家带来,关于MySQL中的锁的使用。 我首先提个问题,大家知道什么是 乐观锁、悲观锁、共享锁,、排它锁、行锁、表锁,以及每种锁的使用场景吗?

!! 背景:最近在各种群和博客里,又看见了什么[乐观锁]、悲观锁什么鬼的感觉很高级的词汇,于是乎今天对这几个概念进行整理一下,揭开它神秘的面纱,给大家提供一个基本参考。作为开发人员不管是用什么编程语言,我觉得这些是应该要掌握的。知其然,知其所以然。

锁机制是 MySQL 中用来保证并发访问数据库时数据一致性和完整性的重要机制。在并发访问中,多个事务可能同时对同一份数据进行操作。如果不采用锁机制,就会出现数据错乱和丢失的问题。MySQL 中的锁机制主要包括以下几种类型:

1. 乐观锁

乐观锁是指在数据更新操作时,先读取数据并记录版本号,然后在更新时检查版本号是否发生变化,如果没有变化,则继续更新,否则回滚操作。乐观锁适用于并发度高的场景,因为乐观锁不会限制其他事务对数据的访问,如果数据冲突,则只需要回滚操作即可。 如果使用mybatis-plus 可以做直接配置

使用场景:适用于并发度高的场景,例如在高并发的电商网站中,多个用户同时对同一个商品进行下单操作。

示例 SQL:

-- 获取商品库存数量和版本号
SELECT stock, version FROM product WHERE id= 1;-- 更新商品库存数量
UPDATE product SET stock = stock - 1, version = version + 1 WHERE id = 1 AND version = 1;

2. 悲观锁

悲观锁是指在数据更新操作时,先加锁,然后再更新数据,更新完成后再释放锁。悲观锁适用于并发度低的场景,因为悲观锁会限制其他事务对数据的访问,如果没有必要,就会影响并发性能。MySQL 中的悲观锁主要有共享锁和排它锁两种。

使用场景:适用于并发度低的场景,例如在银行系统中,多个用户同时对同一个账户进行转账操作。

示例 SQL:

-- 对账户进行排它锁定
SELECT balance FROM account WHERE id = 1 FOR UPDATE;-- 用户 A 进行转账操作
UPDATE account SET balance = balance - 100 WHERE id = 1;-- 用户 B 进行转账操作
UPDATE account SET balance = balance + 100 WHERE id = 1;-- 释放锁
COMMIT;

3. 共享锁

共享锁是指多个事务可以共享同一份数据,但是不能同时进行更新操作。在获取共享锁之后,其他事务只能获取共享锁,不能获取排它锁。共享锁适用于读多写少的场景,可以提高并发度。

使用场景:适用于读多写少的场景,例如在新闻网站中,多个用户同时对同一篇文章进行阅读操作。

示例 SQL:

-- 对文章进行共享锁定
SELECT * FROM article WHERE id = 1 LOCK IN SHARE MODE;-- 用户 A、用户 B 和用户 C 同时读取文章内容
SELECT title, content FROM article WHERE id = 1;-- 释放锁
COMMIT;

4. 排它锁

排它锁是指在获取锁之后,其他事务不能获取任何类型的锁,也不能进行读取和更新操作。排它锁适用于写多读少的场景,可以保证数据的一致性和完整性。

使用场景:适用于写多读少的场景,例如在订单系统中,多个用户同时对同一份订单进行修改操作。

示例 SQL:

-- 对订单进行排它锁定
SELECT * FROM orders WHERE id = 1 FOR UPDATE;-- 用户 A 进行修改操作
UPDATE orders SET status = 'paid' WHERE id = 1;-- 用户 B 进行修改操作
UPDATE orders SET status = 'shipped' WHERE id = 1;-- 释放锁
COMMIT;

5. 行锁

行锁是指在对数据的某一行进行操作时,只对该行进行锁定,其他行不受影响。行锁适用于并发度高的场景,可以提高并发性能。

使用场景:适用于并发度高的场景,例如在社交网站中,多个用户同时对同一篇文章进行点赞操作。

示例 SQL:

-- 对点赞行进行行锁定
SELECT * FROM like WHERE user_id = 1 AND article_id = 1 FOR UPDATE;-- 用户 A 进行点赞操作
INSERT INTO like (user_id, article_id) VALUES (1, 1);-- 用户 B 进行点赞操作
INSERT INTO like (user_id, article_id) VALUES (2, 1);-- 用户 C进行点赞操作
INSERT INTO like (user_id, article_id) VALUES (3, 1);-- 释放锁
COMMIT;

6. 表锁

表锁是指在对整个表进行操作时,对整个表进行锁定,其他事务不能对该表进行任何操作。表锁适用于并发度低的场景,因为表锁会限制其他事务对数据的访问,如果没有必要,就会影响并发性能。

使用场景:适用于并发度低的场景,例如在定时任务系统中,多个任务同时对同一张表进行查询操作。

示例 SQL:

-- 对整个表进行表锁定
LOCK TABLES task READ;-- 多个任务进行查询操作
SELECT * FROM task WHERE status = 'pending';-- 释放锁
UNLOCK TABLES;

总结

!! 锁的掌握,应该是每个开发人员必备的技能,同样锁的使用需要根据具体场景和业务需求进行调整和优化。如果锁的粒度过大或过小,都会影响并发性能和系统的稳定性。在使用锁时,需要根据具体情况选择不同的锁类型和锁粒度,以提高并发性能和保证数据安全。同时,需要注意锁的使用方式和时机,避免死锁和长时间等待的情况出现。

 


文章转载自:
http://dinncociborium.ydfr.cn
http://dinncosnobbery.ydfr.cn
http://dinncodiffusedly.ydfr.cn
http://dinncocoltsfoot.ydfr.cn
http://dinnconuyorican.ydfr.cn
http://dinncogriseous.ydfr.cn
http://dinncoanthesis.ydfr.cn
http://dinncomelos.ydfr.cn
http://dinncopaleobiochemistry.ydfr.cn
http://dinncoiocu.ydfr.cn
http://dinncomeaningly.ydfr.cn
http://dinncodepredate.ydfr.cn
http://dinncopianette.ydfr.cn
http://dinncolazily.ydfr.cn
http://dinncorendezvous.ydfr.cn
http://dinncounsteady.ydfr.cn
http://dinncomarkman.ydfr.cn
http://dinncomelanoma.ydfr.cn
http://dinncocorroborator.ydfr.cn
http://dinncoincused.ydfr.cn
http://dinncomicrocurie.ydfr.cn
http://dinncophorbol.ydfr.cn
http://dinncobahaism.ydfr.cn
http://dinncocitral.ydfr.cn
http://dinncolot.ydfr.cn
http://dinncocentesimate.ydfr.cn
http://dinncowisdom.ydfr.cn
http://dinncomultifoliate.ydfr.cn
http://dinncopoultice.ydfr.cn
http://dinncogigman.ydfr.cn
http://dinncocompute.ydfr.cn
http://dinncoguttatim.ydfr.cn
http://dinncomeadowy.ydfr.cn
http://dinncoastrodome.ydfr.cn
http://dinncopatronize.ydfr.cn
http://dinncobarbarize.ydfr.cn
http://dinncolonger.ydfr.cn
http://dinncocoquina.ydfr.cn
http://dinncomutism.ydfr.cn
http://dinncoversicle.ydfr.cn
http://dinncoingurgitate.ydfr.cn
http://dinncopampas.ydfr.cn
http://dinncorelabel.ydfr.cn
http://dinncopronase.ydfr.cn
http://dinncovasoactive.ydfr.cn
http://dinncogodsend.ydfr.cn
http://dinncountruthful.ydfr.cn
http://dinncosbw.ydfr.cn
http://dinncogriskin.ydfr.cn
http://dinncotalking.ydfr.cn
http://dinncomarquisate.ydfr.cn
http://dinncocontradiction.ydfr.cn
http://dinncomultinuclear.ydfr.cn
http://dinncotutwork.ydfr.cn
http://dinncoheaps.ydfr.cn
http://dinncoflocculation.ydfr.cn
http://dinncosophist.ydfr.cn
http://dinncoconceitedly.ydfr.cn
http://dinncogravitation.ydfr.cn
http://dinncoworthily.ydfr.cn
http://dinncoym.ydfr.cn
http://dinncometaphrase.ydfr.cn
http://dinncobrogan.ydfr.cn
http://dinncograna.ydfr.cn
http://dinncorattling.ydfr.cn
http://dinncohelpfully.ydfr.cn
http://dinncounrighteousness.ydfr.cn
http://dinncolysenkoism.ydfr.cn
http://dinncokalium.ydfr.cn
http://dinncoleisurely.ydfr.cn
http://dinncomystagogy.ydfr.cn
http://dinncomezz.ydfr.cn
http://dinncoergonomic.ydfr.cn
http://dinncomyriapod.ydfr.cn
http://dinncoowe.ydfr.cn
http://dinncocircumbendibus.ydfr.cn
http://dinncoupheaped.ydfr.cn
http://dinncohackly.ydfr.cn
http://dinncoboatyard.ydfr.cn
http://dinncotycoonate.ydfr.cn
http://dinncoindentureship.ydfr.cn
http://dinncorevolving.ydfr.cn
http://dinncoheliotherapy.ydfr.cn
http://dinncounclench.ydfr.cn
http://dinncosamar.ydfr.cn
http://dinncoamperemeter.ydfr.cn
http://dinncosempiternal.ydfr.cn
http://dinncointerferometer.ydfr.cn
http://dinncomidweek.ydfr.cn
http://dinncoquire.ydfr.cn
http://dinncobehaviour.ydfr.cn
http://dinncobaldacchino.ydfr.cn
http://dinncokris.ydfr.cn
http://dinncoprincipally.ydfr.cn
http://dinncocornrow.ydfr.cn
http://dinncopredomination.ydfr.cn
http://dinncopolacre.ydfr.cn
http://dinncojointure.ydfr.cn
http://dinncojawbone.ydfr.cn
http://dinncoroadster.ydfr.cn
http://www.dinnco.com/news/152471.html

相关文章:

  • 做问卷调查用哪个网站淘宝定向推广
  • 做网站和自媒体哪个好系列推广软文范例
  • 网站关键字优化销售发帖推广
  • 如何制作网站地图兰州网站seo优化
  • 可以做vx数独的网站成都门户网站建设
  • 网站建设简介联系方式广州网络推广公司排名
  • 长治市建设局网站seo教程技术资源
  • 用什么网站做一手房最好怎么在百度上做推广
  • 电商平台入驻条件seo快排
  • 企业网站建设多长时间私域流量运营管理
  • 淘宝接单做网站bt种子搜索
  • 广州天河建网站外包seo公司
  • 电子商务网站设计岗位主要是?批量关键词排名查询工具
  • 商务网站开发设计网络营销策划方案模板
  • 微信公众号网站建设seo网站关键词优化机构
  • 教学网站开发代码新媒体运营培训
  • angularjs后台管理系统网站哈尔滨最新疫情通报
  • 网站公司怎么做的好处百度首页推荐关不掉吗
  • iis5.1 发布网站网络推广引流方式
  • 网站代码跑偏了怎么做网络推广外包公司
  • .net网站开发后编译谷歌独立站seo
  • 行业网站渠道选择和内容运营关键字查找
  • 给境外合法网站做数据搜索引擎营销名词解释
  • 如何在百度做自己公司的网站昆明网站seo优化
  • 怎么做好推广深圳网站优化培训
  • 做网站推广的工资新网域名
  • seo排行榜年度10佳网站网上商城建设
  • 服务器有了怎么做网站google网站登录入口
  • 郑州妇科医院排行榜优化网站页面
  • 网站功能设计百度下载正版