mysql architecture 说明

字段意义说明

Connectors:数据库连接器

Native C API:C连接数据库接口

JDBC:Java连接数据库驱动

ODBC:开放数据库互连

.NET:.NET连接数据库驱动

PHP:PHP连接数据库驱动

Perl:Perl连接数据库驱动

Python:Python连接数据库驱动

Ruby:Ruby连接数据库驱动

Cobol:Cobol连接数据库驱动


Connection Pool:

MySQL是单进程多线程工作模式,所以必须维护一个线程池。管理大量线程对大量客户端并发请求进行并发响应。

Authentication:认证,用户名密码等。

Thread Reuse:线程重用。(当一个用户连接请求进来之后,需要一个线程来进行响应。当用户退出,这个线程并不是被销毁,而是清理此线程重新收归到线程池当中的空闲线程中)

Connection Limits:线程池的大小决定了连接并发数的上限。

Check Memory:线程内存检查

Caches:线程缓存。

SQL Interface:类似于mysql的shell,SQL命令的解释器,支持过程式编程,支持视图、存储过程、存储函数、触发器,分析语法问题等等。


Parser:SQL语句分析器,并不分析语法问题,进行语句的执行分析。查询翻译,将一个查询语句转化成对应的可以识别的语句,能在本地执行的特定操作。分析是对某个对象有访问权限等。

Optimizer:负责检查多条路径及每条路径的开销,评估开销(开销的计算依赖于索引,动态生产的统计数据,内部组件等)。生成统计数据等。


Caches&Buffers:MySQL的某些存储引擎,将访问到的频繁的热点数据装入内存,用户直接访问内存便于访问。所MySQL需要维护一个Caches&Buffers.


Pluggable Storage Engines:

插件式存储引擎。MyISAM、InnoDB、NDB、Archive、Memory等,存储引起负责把具体分析的结果(Optimizer),完成对磁盘上文件的路径访问的转换。

存储引擎需要把语句映射到磁盘块,并将磁盘块加载到内存中。


FileSystem:物理视图,在操作系统级别,MySQL的数据存储为一个个文件。


Files&Logs:

    Redo:重做日志

    Undo:撤销日志

    Data:数据文件

    Index:索引文件

    Binary:二进制日志文件

    Error:错误日志

    Query and Slow:查询日志和慢查询日志


简化架构说明

mysql architecture_第1张图片

流程说明:

  • 1.各种客户端通过连接器,交由连接线程处理。负载连接线程的创建、管理、销毁等。

  • 2.用户发出语句后,由分析器进行分析。如果是查询语句,直接进入查询缓存。

  • 3.如果命中,直接返回,如果未命中。则继续交给优化器。

  • 4.优化完成以后,交给存储引擎负责对应的文件系统,取到相关的数据。加载到内存中,由存储引擎挑选出对应的行或符合条件的行。