博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MySQL中的实例、数据库关系简介
阅读量:7127 次
发布时间:2019-06-28

本文共 1294 字,大约阅读时间需要 4 分钟。

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结束。

 

转载地址:http://gdhel.baihongyu.com/

你可能感兴趣的文章
Nginx 外的另一选择,轻量级开源 Web 服务器 Tengine 发布新版本
查看>>
常见的分布式文件系统介绍
查看>>
日期相关的格式设置
查看>>
通过Spring-boot整合dubbo框架
查看>>
C程序三子棋
查看>>
不知道SQL SERVER账户密码,生成创建用户的语句
查看>>
php 缩略图生成类,支持imagemagick及gd库两种处理
查看>>
我的友情链接
查看>>
11. 哈希表(1)
查看>>
node js 打包文件
查看>>
div的offsetLeft与style.left区别
查看>>
LAMP介绍与基本安装
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
linux 查看进程占用内存
查看>>
数据库系统原理中的基本概念
查看>>
我的友情链接
查看>>
Windows sever 2008 R2 ---虚拟机安装
查看>>
PC 加入AD域的要求
查看>>
B-tree vs B+tree
查看>>