美文网首页
实例、连接和会话关系

实例、连接和会话关系

作者: 二狗不是狗 | 来源:发表于2020-04-19 21:15 被阅读0次

    MySQL服务器Instance实例和进程

    1、MySQL是单进程多线程(oracle是多进程),也就是说mysql实例在系统上表现就是一个服务进程,可以通过创建多个进程(每个进程不同的端口号)来创建多实例。
    2、MySQL实例是线程和内存组成,实例才是真正用于操作数据库文件的(MySQL数据库是由一些列物理文件组成,类似于frm、MYD、MYI、ibd结尾的文件)。
    3、一般情况下一个实例操作一个或多个数据库(Oracle一个实例对应一个数据库);集群情况下多个实例操作一个或多个数据库。

    Connection连接和Session会话

    1、连接(connection)是物理的概念,它指的是通过网络建立的客户端和服务器的一个网络连接。
    2、mysql中创建一个连接不是和具体的数据库相连接,而是跟某个Instance实例建立连接。
    3、会话(session)是一个逻辑的概念,它是依赖于连接;一个连接可以拥有多个会话也可以没有会话,同一个连接上的不同会话之间不会相互影响。
    4、两个会话之间的影响,体现在锁和锁存,即对相同资源的操作(对象定义或数据块)或请求(CPU/内存),它们的处理一般是按队列来处理的,前面的没有处理 好,后面的就要等待。

    Session会话、事务Transaction和数据库线程

    1、事务简单理解就是一个业务需求的最小处理单位;
    2、一个会话中可以有多个事务,一个事务只能由一个会话产生(执行的SQL都是由会话发起的,哪怕是自动执行的JOB也是由系统会话发起的)。
    3、一个事务可能会产生一个或多个线程(比如RMAN备份,是可以创建多个线程可加快备份速度);而一个线程在同一时间内只能执行一个事务。

    拓展延伸

    1、mybatis一般情况下一个交互(增删改查)是一个sqlSession;但开启事务时则一个事务是一个sqlSession。

    相关文章

      网友评论

          本文标题:实例、连接和会话关系

          本文链接:https://www.haomeiwen.com/subject/nrjibhtx.html