zoukankan      html  css  js  c++  java
  • MySQL系列(一) MySQL体系结构概述

    • 1 MySQL 的体系结构

      • 连接池组件
      • 管理服务和工具组件
      • SQL接口组件
      • 查询分析器组件
      • 优化器组件
      • 缓冲组件
      • 插件式存储引擎(体系结构的核心)
      • 物理文件
    • 2 InnoDB 概述

      • InnoDB存储引擎支持事务,设计目标主要面向在线事务处理OLTP的应用,其特点是行锁设计,支持外键,并支持类似于Oracle的非锁定读,即默认读取操作不会产生锁,5.58后成为默认引擎
      • InnoDB使用MVCC(多版本并发)控制来获得高并发性,并且实现了SQL标准的4种隔离级别
      • InnoDB还提供了插入缓冲,二次写,自适应哈希索引,预读等实用功能
      • InnoDB采用聚集索引的方式,每张表的存储都是按照主键的顺序进行存放
      • 最有效利用以及使用内存的cpu 的存储引擎,好性能,高扩展,高可用
    • 3 其他存储引擎概述

      • MyISAM :面向 OLAP,不支持事务
        • MyISAM不支持事务,表锁设计,支持全文索引,主要面向一些OLAP数据库应用。
        • 缓冲池只缓存索引文件,而不缓冲数据。
      • DNB: 集群存储引擎
        • 集群存储引擎
        • 数据全部放在内存中(5.1后可以在磁盘上存非索引数据),主键查找速度极快并且可以通过添加NDB数据存储节点可以线形提高数据库性能,是高性能高可用的集群系统。
        • 不过NDB的连接操作是在MySQL数据库层完成的,如果解决了这个问题,NDB的的市场是非常巨大的。
      • Memory: 数据存放内存
        • 之前称之为HEAP引擎,将数据存放在内存中,适合存储临时数据的临时表,以及数据仓库中的维度表
        • 使用哈希索引,而不是B+树
        • 并发性较差,存储变长字段是按照定长处理的,比较浪费内存
    • 4 InnoDB 体系结构

      • 多个内存块组成一个内存池,主要功能:
        • 缓存磁盘上的数据
        • 重做日志缓冲
        • 维护所有进程/线程需要访问的内部数据结构
      • 多线程模型
        • Master Thread:核心线程,主要负责将缓存池中数据异步刷新到磁盘
        • IO Thread: 处理IO请求,负责这些IO请求的毁掉函数处理
        • Purge Thread: 回收已经使用并分配的undo(重做日志)页
        • Page Cleaner Thread: 处理脏页的刷新操作。
  • 相关阅读:
    【BZOJ】【2661】【Beijing WC2012】连连看
    【BZOJ】【2424】【HAOI2010】订货
    【BZOJ】【1061】【NOI2008】志愿者招募
    【POJ】【3680】Intervals
    网络流建模
    【BZOJ】【1221】【HNOI2001】软件开发
    【BZOJ】【1877】【SDOI2009】晨跑
    bzoj2054: 疯狂的馒头(并查集)
    浴谷金秋线上集训营 T11738 伪神(树链剖分)
    51nod1967 路径定向(欧拉回路+结论题)
  • 原文地址:https://www.cnblogs.com/wang-kai-1994/p/10810364.html
Copyright © 2011-2022 走看看