mysql架构详解

  

mysql架构说明

癿ysql架构详解"

JDBC: Java连接数据库驱动

ODBC:开放数据库互连

. net:。净连接数据库驱动

PHP: PHP连接数据库驱动

Perl: Perl连接数据库驱动

Python: Python连接数据库驱动

Ruby: Ruby连接数据库驱动

Cobol: Cobol连接数据库驱动


<强>连接池:

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

<>强身份验证:强认证,用户名密码等。

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

<强>连接限制:强线程池的大小决定了连接并发数的上限。

<强>检查内存:强线程内存检查

<强>缓存:强线程缓存。

<强> SQL接口:类似于MySQL的壳,SQL命令的解释器,支持过程式编程,支持视图,存储过程,存储函数,触发器,分析语法问题等等。


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

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


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


<强>可插拔存储引擎:

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

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


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


<强> Files&日志:

,,重做,重做日志

,,撤销:撤销日志

,,数据:数据文件

,,指数:索引文件

,,二:二进制日志文件

,,错误:错误日志

,,查询和缓慢:查询日志和慢查询日志


<强>

<李>

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

<李>

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

<李>

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

<李>

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


  

mysql架构详解