基于上次临时表的问题,我们提到了外部临时表的两种,基于session的临时表和基于transaction的临时表,这次我就来整理下什么是session和transaction。
一、session
提到session 我们会跟connection放在一起来比较,https://blog.csdn.net/jimsonhappy/article/details/54707694
https://www.cnblogs.com/yasmi/articles/5587868.html
这两篇都讲的特别通俗易懂(我是似懂非懂,所以就不再说了)
我只知道connection是一个物理概念、session是一个逻辑概念
当client端和服务器端创建了一个connection表示创建了一个session,有了session之后,所有的业务操作是transaction。
一个session会有多个transaction。
一个transaction是一个最小的工作单元,通常一个事物对应一个完整的业务,比如我们经常说的银行转账业务,它是由一组DML语句组成,该组DML语句完成业务逻辑,transaction只和DML语句有关,也只有DML语句才有transaction。一组DML语句要么全部成功(commit),要么全部失败(rollback)。
以银行转账为例,张三给李四转账100元.
事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。
即:张三减100, 李四+100 , insert银行流水, 这3个操作,要么都成功,要么都失败。
关键字:transaction、session、会话、事物、connection
网友评论