mysql 架构

1、架构

     逻辑架构图

  

    包括:

   

连接器(Connectors):对外提供调用接口。java php等。

系统管理和控制工具(Management Serveices & Utilities): 如备份(Backup),恢复(Recovery),安全管理(Security)等

连接池(Connection Pool):通讯,接受指令,传递数据

SQL Layer MySQL业务层(Service层)

  SQL接口(SQL Interface)   接收用户SQL命令,如DML,DDL和存储过程等,并将最终结果返回给用户。
       解析器(Parser)接收SQL DML DDL   词法解析/语法解析  形成语法树  ,若解析错误则抛出异常
       查询优化器(Optimizer)  优化sql执行,索引选择
       查询缓存(Cache和Buffffer) 缓存和缓冲组件

存储引擎(Pluggable Storage Engines) :

  可插拔式存储引擎层(影响性能) :  将数据从文件系统中存储或查询。
  存储引擎 : 以表为单位    create  table xxx() engine=InnoDB 默认使用的存储引擎是InnoDB。
  常用:MyISAM  高速引擎,拥有较高插入,查询速度,但不支持事务,不支持行锁。表只用来读的时候可用                   
            InnoDB 5.5版本后Mysql的默认数据库,支持事务和行级锁定,事务处理、回滚、崩溃修复能力和多版本并发控制的事务安全,,支持外键 
       Memory  内存存储,不存在磁盘
  

存储引擎的选型: 

InnoDB:支持事务处理,支持外键,支持崩溃修复能力和并发控制。如果需要对事务的完整性要求比
较高(比如银行),要求实现并发控制(比如售票),那选择InnoDB有很大的优势。如果需要频繁的
更新、删除操作的数据库,也可以选择InnoDB,因为支持事务的提交(commit)和回滚(rollback)。
MyISAM:插入数据快,空间和内存使用比较低。如果表主要是用于插入新记录和读出记录,那么选择
MyISAM能实现处理高效率。如果应用的完整性、并发性要求比 较低,也可以使用。 
MEMORY:所有的数据都在内存中,数据的处理速度快,但是安全性不高。如果需要很快的读写速度,
对数据的安全性要求较低,不需要持久保存,可以选择MEMOEY。它对表的大小有要求,不能建立太大
的表。所以,这类数据库只使用在相对较小的数据库表。
注意:同一个数据库也可以使用多种存储引擎的表。如果一个表要求比较高的事务处理,可以选择
InnoDB。这个数据库中可以将查询要求比较高的表选择MyISAM存储。如果该数据库需要一个用于查询
的临时表,可以选择MEMORY存储引擎。
 
简版执行流程图
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
原文地址:https://www.cnblogs.com/vindycxy/p/12395473.html