请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

事务和锁的概念有点混乱

老师好:

在innoDB中

1.commit又是事务提交又是解锁?这个有区别么,还是说事务提交的意思就是解锁?

2.innoDB中,默认是自动commit的,意思是每个语句都是自带事务么?

比如说本来只是写了

select ...

其实实际应该是

begin transation
select ..
commit

3.加事务就是加锁么?(比如开启事务的transaction)

4.二段锁和事务的二段提交是一个意思么?

正在回答

1回答

  1. 开启事务, 每个insert,update,delete,select..for update 还有共享锁都会对影响到的数据加锁(在使用索引作为条件的时候), 结束事务 也就是 commit或者 rollback 会将整个事务所有加的锁都解开

  2. 可以这么理解, 就是执行一句sql就自动commit,auto_commit无法写多条sql作为同一个事务执行

  3. 3问题建议百度一下什么是事务和锁, 4问题没听过, 孤陋寡闻了.什么是二段锁...

0 回复 有任何疑惑可以回复我~
  • 翔仔 #1
    感谢同学的热心支持,同学是mysql大牛,基础比较扎实:)
    针对莨菽菽同学的问题,补充一下第三个和第四个问题。
    第三个,事务的概念是一条或者是多条语句组成的操作单元,要么都执行,要么都不执行。数据库的事务有两种,显式和隐式。我们平时使用的单条增删改查语句都是隐式的单条操作事务。
    事务的特性是ACID,而实现这四个特性重要的工具就是使用数据库锁。对于单条select操作也可以说是一个事务,但是却不会加锁,所以第一个问题里面把锁和事务划等号是不对的。
    第四个问题的话,两个概念是有区别的,具体可以看看这个
    https://blog.csdn.net/weixin_33889245/article/details/88926438
    回复 有任何疑惑可以回复我~ 2020-04-10 00:37:14
  • 提问者 莨菽菽 #2
    非常感谢!
    回复 有任何疑惑可以回复我~ 2020-04-15 17:36:03

相似问题

登录后可查看更多问答,登录/注册

问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信