mysql进程线程_mysql-数据库,实例,进程,线程的概念

一些基本的概念

数据库(DB):是磁盘上的一系列物理文件,这个“数据库”,不是我们平时口语中所说的“数据库”,后面我会提到

mysql数据库就是一堆frm、MYD、MYI、ibd文件

数据库管理系统(DBMS):我们平时“口语中所说的数据库",由数据库+数据库实例构成

数据库实例(instance):操作系统中文件是死的,要使用文件(操作数据库中的数据)就需要把文件读到内存,实例就是干这个事的,

实例是由一系列进程(或线程)和内存区组成的,和数据库打交道,都是通过实例来操作的

mysql,pg,oracle的进程和线程设计

mysql是单进程多线程设计的,oracle和postgres是多进程的,究其原因在这里:https://www.zhihu.com/question/20303558

大体就是后两者出现的时间较早,那时候线程技术还不成熟

实例和进程:

一个mysql数据库实例在系统表现上就是一个服务进程,对于实现mysql多实例,需再安装一个端口号不同的mysql,例如InnoDB引擎的后台线程

Master Thread负责将缓冲池中的数据异步刷新到磁盘

IO Thread负责异步IO请求的回调处理。read thread线程数4个,write thread线程数4个

Purge Thread负责事务被提交后,回收已经使用并分配的undo页

Page Cleaner Thread负责脏页的刷新操作

pg中一个实例有多个进程,实例的总控进程是Postmaster,还有其他辅助进程,包括:SysLogger系统日志进程,BgWriter后台写进程,WalWriter预写式日志进程等

在同一台pg上创建一个实例,只需要指定一个不同的端口即可

实例和数据库

一般的,对于mysql和pg来说,一个实例可以操作一个或多个数据库

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值