Mysql笔记(一)--整体架构

73 阅读1分钟

一、Mysql整体架构

image.png

(一)网络连接层

1、数据库连接池(Connnection Pool)

(1)使用线程池接收处理客户端连接;

(2)省去了创建线程、分配栈空间等一系列动作,提升性能,节省资源开销;

2、实用命令

(1)show processlist;查询所有正在运行的线程;

(2)show variables like '%max_connections%';查询数据库当前最大连接数;

(3)set GLOBAL max_connections = 200;设置数据库最大连接数;

(4)show status like "Threads%";查询客户端连接数;

(二)系统服务层

1、SQL接口组件(SQL Interface)

(1)接收客户端发送的SQL语句,向客户端返回处理结果;

(2)划分SQL语句类型(DML、DDL、DQL、DCL、TCL);

(3)触发器;

2、解析器(Parser)

(1)验证SQL语句是否正确;

(2)词法分析、语义分析、语法树生成等;

(3)“翻译”成机器指令;

3、优化器(Optimizer)

(1)生成执行计划;

(2)调用存储引擎API执行SQL语句;

4、缓存与缓冲(Caches & Buffers)

(1)查询缓存:Mysql8.0以后取消;

(2)写入缓冲区(InnoDB的缓冲区叫做innodb_buffer_pool):减少大量磁盘IO,进一步提高数据库整体性能;

(三)存储引擎层

1、可插拔式的存储引擎(Pluggable Storage Engines)

(1)show variables like '%storage_engine%';查询命令;

(2)所有与磁盘打交道的工作:数据管理、库表管理、索引管理等等;

(四)文件系统层

1、文件系统(File System)

与上层存储引擎做交互,负责数据的最终存储与持久化工作;

2、日志板块(Logs)

binlog、redo-log、undo-logs、error-log、general-log、slow-log、relay-log等;

3、数据板块(Files)

数据文件类型;