mysql 实例 库 关系_MySQL中的实例、数据库关系简介

本文介绍了MySQL数据库实例与数据库的关系,对比了MySQL与Oracle的差异,并详细阐述了database、instance、connection及session的概念,强调了一个实例可以操作多个数据库,且连接与会话在MySQL中的逻辑特性。
摘要由CSDN通过智能技术生成

mysql数据库与数据库实例的区别

对于mysql

数据库指的是文件的集合,是按照某种数据模型组织起来的并以二进制存储的数据集合。

数据库实例是应用程序,是位于用户与操作系统之间的一层数据管理软件,用户对数据库进行操作,包括定义表结构,数据查询,数据维护等控制,都是在数据库实例下进行的,可以这样理解,应用程序通过数据库实例才能和数据库打交道。

一、MySQL与Oracle对比

1、MySQL是单进程多线程(而Oracle等是多进程),也就是说MySQL实例在系统上表现就是一个服务进程,即进程(通过多种方法可以创建多实例,再安装一个端口号不同的,或者通过workbench来新建一个端口号不同的服务器实例等),该类似于SQL Server和Windows版本的Oracle;

2、MySQL实例是线程和内存组成,实例才是真正用于操作数据库文件的(MySQL数据库是由一些列物理文件组成,类似于frm、MYD、MYI、ibd结尾的文件);

3、一般情况下一个实例操作一个或多个数据库(Oracle一个实例对应一个数据库);集群情况下多个实例操作一个或多个数据库。

注:在实例启动的时候MySQL会读取配置文件,类似于Oracle的spfile文件,不同的是Oracle如果找不到参数文件会启动失败,MySQL如果找不到配置文件则会按照默认参数设置启动实例。

二、MySQL中database、instance、connection、session

2.1、database与instance

MySQL中建立一个会话,不是和具体的数据库相连接,而是跟某个instance建立会话(每个会话可以使用不同的用户身份)。而一个实例可以操作多个database,故一个会话(在操作系统概念里,会话即是线程)可以操作一个实例上的多个数据库。

2.2、connection和session的定义

1.连接(connection)是一个的概念,它指的是一个通过网络建立的客户端和专有服务器(Dedicated Server)或调度器(Shared Server)的一个网络连接。

2.会话(session)是一个逻辑的概念,它是存在于实例中。

注:创建一个连接(connection)实际上是在某个实例(instance,或者说是进程)中创建一个或多个线程。

2.3、connection和session的区别

1、一个连接可以拥有多个会话也可以没有会话(实际上,一条连接上的各个会话可以使用不同的用户身份),同一个连接上的不同会话之间不会相互影响。

2、 两个会话之间的影响,体现在锁和锁存,即对相同资源的操作(对象定义或数据块)或请求(CPU/内存),它们的处理一般是按队列来处理的,前面的没有处理好,后面的就要等待。如果以打电话来比喻:connect就好比你接通对方,这时,connect就建立了,有没有通话,不管。双方进行通话,则session建立了,如果换人,则新的session建立,原session结束,类似的,可以在同一个connect上进行多个会话。最后,挂机,connect结束。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值