1. connection、session、transaction

    connection,数据库连接,一种物理概念,客户端通过这个连接与数据库服务端进行通信,基于tcp的socket连接。由于创建与销货连接开销比较大,因此可以通过池化数据库连接来复用连接。

    session,会话,一种抽象概念,这是一个存在于MySQL服务端的概念。

    transaction,事务,一种抽象概念,即一堆操作的集合,这堆操作要么同时成功,要么同时失败。

2.MySQL的自动提交功能

    相信,我们在用客户端操作MySQL数据时,会有这样的一个疑问,事务到底体现在哪了?

    实际上,默认情况下,我们每执行一条语句,MySQL就会帮忙自动提交这个事务,即每条语句都会自动提交,至此一个事务就完成了,在你不知不觉中,就完成了一个事务。那我们如何开启与关闭自动提交功能呢?

下面哪些是mysql session级别的参数 mysql的session指什么_网络

    红色与绿色的两个窗口,分别开启了一个事务。在绿色事务没有commit之前,红色事务职能看到原始的数据,如果看到了,则属于 “脏读”(读到别人未提交数据),这就涉及到数据库的事务隔离级别。MySQL的默认事务隔离级别是 可重复读,可以保证不同事务在并发的读取数据时,看到相同的数据,知道其中一个事务提交事务。

上面第5步操作完成之后会话中一个事务结束了,立马在不知不觉中,你又进入了另外一个事务(这个与后面的代码是相通的)。事务实际上无处不在,你不是在这个事务中,就是在下一个事务中。

3.一句话就是,MySQL中事务无处不在。除非该存储引擎完全不存在这种事务的概念。实际上,MyISAM存储引擎,也是存在这样的先后提交的,只是它比不是很好的支持回滚罢了。