zoukankan      html  css  js  c++  java
  • 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引擎的后台线程

    1. Master Thread负责将缓冲池中的数据异步刷新到磁盘
    2. IO Thread负责异步IO请求的回调处理。read thread线程数4个,write thread线程数4个
    3. Purge Thread负责事务被提交后,回收已经使用并分配的undo页
    4. Page Cleaner Thread负责脏页的刷新操作

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

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

    实例和数据库

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

  • 相关阅读:
    植物大战僵尸游戏内存地址
    Win7如何取消用户登陆界面
    Adobe PS CS6安装详解
    MVC 支持同名路由,不同命名空间
    Session阻塞 读写锁引发的小问题
    GZipStream 压缩和解压
    IIS 工作原理之非托管代码旅程(一)
    Http协议(一)
    Css学习笔记 (一)
    Linq二 LinqToSql
  • 原文地址:https://www.cnblogs.com/yb38156/p/12693773.html
Copyright © 2011-2022 走看看