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来说,一个实例可以操作一个或多个数据库

  • 相关阅读:
    每日英语:AntiJapan Protests Flare in China
    opencv CvMat矩阵学习
    warning C4018有符号无符号不匹配
    每日英语:Relationship Repair: 10 Tips for Thinking Like a Therapist
    结构体数组定义和引用
    每日英语:China's Conflicted Consumers
    一个托盘程序, 简化notifyicon的使用.
    nunit notes from TDD in .net
    一款能拖拉的winform树形控件
    vss 2005 internet visit
  • 原文地址:https://www.cnblogs.com/yb38156/p/12693773.html
Copyright © 2011-2022 走看看