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存储引擎。
简版执行流程图