- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Mysql事务和锁解读
锁之间的兼容关系 一致性非锁定读加锁 基于MVCC机制, select操作是在读取undo中历史数据, 因为历史数据不需要修改, 所以不需要加任何锁. Locking reads 一致性锁定读, 不会使用undo日志, 会直接对当前记录加锁. select for update 会加x锁, select lock in share mode 回家s锁. 其他的都相同. 提问 什么场景下, 需要使用select for update 而不是select in share mode? 加锁信息解读 insert加锁 Insert不会自己加锁,而在插入之后,如果还没有提交,此时正好有其它事务做更新或者删除操作了,则这个操作会为这个插入操作加一把锁,然后自己再加一把锁 Insert acts as if locked by itself. Update by primary key 如果要更新的记录存在, 加一把 record lock. 如果记录不存在, 加gap lock. 如果整张表是空的, gap lock锁住(-INF, INF) Update by unique key 如果要更新的记录存在, 在唯一键上有一把行锁, 在主键上有一把行锁 如果记录不存在, 加gap lock. * A: 原子性, 事务执行结果只有两个状态, 要么执行成功, 提交, 要么直接回滚. C: 一致性, 事务将数据库从一种状态转变为下一周一致的状态. 数据库的完整性约束不会被破坏. I: 隔离性, 每个读写事务的对象对其他事务的操作对象相互隔离. 该事物提交前对其他事务不可见, 通常通过锁实现. D: 事务提交后, 结果是永久性的. 及时发生宕机, 数据库也能将数据恢复. 需要强调的一点是, 隔离级别是相对于读来说的. * * 规则是一方面, 但是各个厂商都可以根据自己的情况, 定制化自己的实现. 类似情况还包括, 各种浏览器对html标准的支持, TCP/IP模型()和ISO模型. 应用层, 主机到主机层(TCP)(又称传输层) , 网络层(IP)(又称互联层), 网络接口层(又称链路层) mysql 下面, 如何设置隔离级别: SELECT @@global.tx_isolation; SELECT @@session.tx_isolation; SELECT @@tx_isolation; SET [SESSION | GLOBAL] TRANSACTION ISOLATION LEVEL {READ UNCOMMITTED | READ COMMITTED | REPEATABLE READ | SERIALIZABLE} * * RR和RC下面, select 对于mvcc使用是不一样的. RR下面, select 一直使用当前事务最开始读到的那个版本, 而在RC下面, 每次select , 为了督导最新提交, 都会去读最新的版本. 做一下实现 题外话, ConcurrentHashMap, CopyOnWriteArrayList 这两个数据结构, 都是类似的设计逻辑, 做到了弱一致性. * 实验: transaction1: set session tx_isolation = repeatable-read; //第二个实验设置成read-committed. begin; select @@session.tx_isolation; select * from test_lock where id = 1; .. commit; transaction2: begin; update test_lock set name_index = fangxue where id = 1; commit; * 锁住primary key 就是锁住了所有字段, 锁住某个secondary index, 就是锁住了那个字段和primary key. * 这里的X锁和S锁, 都是指表锁. 表级锁和行级锁之间, 是不存在冲突或者兼容的概念的. * 测试语句: select * from test_lock; show engine innodb status\G 检查检索信息. * 这两个语句都只能在显式的transaction中才能执行. 测试语句: select * from test_lock where code_index = beijing_city lock in share mode; select * from test_lock where code_index = beijing_city for update; SELECT ... LOCK IN
您可能关注的文档
- Module4英语强调句型解读.ppt
- MobileApp设计和开发解读.ppt
- MOOC文化差异与跨文化交际解读.docx
- Modbus串口通信功能设计解读.doc
- MOT关键时刻解读.ppt
- MPAcc(西方经济学)06解读.ppt
- MotorSolvePMSM介绍解读.ppt
- 19.生命_生命讲解.ppt
- MRPⅡERP原理基础解读.ppt
- MRP-Sunrex解读.ppt
- 2025至2030中国移动治疗台行业发展研究与产业战略规划分析评估报告.docx
- 2025至2030链激酶行业细分市场及应用领域与趋势展望研究报告.docx
- 2025至2030爆炸物探测扫描仪行业市场占有率及有效策略与实施路径评估报告.docx
- 2025至2030四川省智能制造行业细分市场及应用领域与趋势展望研究报告.docx
- 2026届高三二轮复习试题政治大单元突破练1生产资料所有制与分配制度含解析.docx
- 2026届高三二轮复习试题政治大单元突破练16哲学基本思想与辩证唯物论含解析.docx
- 2026届高三二轮复习试题政治大单元突破练2社会主义市场经济体制含解析.docx
- 浙江省衢州市五校联盟2025-2026学年高二上学期期中联考技术试题-高中信息技术含解析.docx
- 浙江省金丽衢十二校2026届高三上学期11月联考政治试题含解析.docx
- 2026届高三二轮复习试题政治大单元突破练7领导力量:中国共产党的领导含解析.docx
最近下载
- 四川开放大学《灾难事故避险自救》终结性考核-100分.doc VIP
- 2025中企出海薪酬展望电子版.pdf VIP
- 广东工业大学《光电子技术》期末复习试卷.pdf VIP
- 注册会计师-会计-基础练习题-第七章资产减值-第一节资产减值概述.docx VIP
- 工业自动化软件:Rockwell Automation Logix5000二次开发all.docx VIP
- 注册会计师-会计-强化练习题-第七章资产减值.docx VIP
- GB_T 2518-2019 连续热镀锌和锌合金镀层钢板及钢带.docx VIP
- 上海政法学院《财务管理》2025 - 2026学年第一学期期末试卷.docx VIP
- 数学作业本 七年级上 浙教版.pptx VIP
- 实验室认可资质认定内审员培训.pptx VIP
原创力文档


文档评论(0)