torlee 发表于 2018-10-9 11:18:47

mysql architecture

  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:查询日志和慢查询日志
  简化架构说明
  
  流程说明:

[*]  1.各种客户端通过连接器,交由连接线程处理。负载连接线程的创建、管理、销毁等。
[*]  2.用户发出语句后,由分析器进行分析。如果是查询语句,直接进入查询缓存。
[*]  3.如果命中,直接返回,如果未命中。则继续交给优化器。
[*]  4.优化完成以后,交给存储引擎负责对应的文件系统,取到相关的数据。加载到内存中,由存储引擎挑选出对应的行或符合条件的行。

页: [1]
查看完整版本: mysql architecture