温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

MySQL锁机制讲义

发布时间:2020-04-25 15:28:45 来源:亿速云 阅读:223 作者:三月 栏目:web开发

本文主要给大家介绍MySQL锁机制讲义,其所涉及的东西,从理论知识来获悉,有很多书籍、文献可供大家参考,从现实意义角度出发,亿速云累计多年的实践经验可分享给大家。

MySQL 锁机制

1、MySIAM 存储引擎

支持的类型是表锁,表共享读锁(Table Read Lock),表独占写锁(Table Write Lock

MySQL锁机制讲义

乐观锁

一、在对数据库中进行操作时,认为肯定会有其他的操作会跟我们的修改产生冲突,所以每次操作都会上一个锁。


  • 共享锁(S):SELECT * FROM table_name WHERE ... LOCK IN SHARE MODE

  • 排他锁(X):SELECT * FROM table_name WHERE ... FOR UPDATE


注意事项:

1、是根据索引来对行进行锁定的,如果用的是非索引字段则会将表锁住。

2、行/表 被锁定后,其他脚本可以正常读取记录,但是如果修改记录的话,则会被阻塞,直到排他锁被 commit

3、对于UPDATE、DELETE和INSERT语句,InnoDB会自动给涉及数据集加排他锁(X)


乐观锁:认为操作不会有数据冲突,数据库是不支持的,需要我们用代码逻辑实现,一般是通过数据库增加一个version字段来进行控制

1、表中增加一个version字段,每次对数据进行更新后,进行值+1操作。然后通过之前查出来的version值,如果一致则完成,不一致则返回错误

看了以上MySQL锁机制讲义介绍,希望能给大家在实际运用中带来一定的帮助。本文由于篇幅有限,难免会有不足和需要补充的地方,大家可以继续关注亿速云行业资讯板块,会定期给大家更新行业新闻和知识,如有需要更加专业的解答,可在官网联系我们的24小时售前售后,随时帮您解答问题的。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI