mysql体系:
解释:
调用:
1.connectors:连接器 (远程调用mysql,Native很常用的mysql远程连接工具、其它是可以调用mysql支持的一些语言和方法)
mysql结构
2.Connection Pool:连接池(管理用户连接、用户名、密码、权限校验、线程处理等需要缓存的需求 )
Management Serveices & Utilities: 管理服务和工具,例如备份恢复、Mysql复制、集群等
SQL Interface: SQL接口:接受用户的SQL命令,并且返回用户需要查询的结果。比如select from就是调用SQL Interface 。
3.Parser: 解析器,SQL命令传递到解析器的时候会被解析器验证和解析。解析器是由Lex和YACC实现的,是一个很长的脚本, 主要功能:
a . 将SQL语句分解成数据结构,并将这个结构传递到后续步骤,以后SQL语句的传递和处理就是基于这个结构的 (解析SQL语句)
b. 如果在分解构成中遇到错误,那么就说明这个sql语句是不合理的 (判断SQL语句)
4.Optimizer: 查询优化器:自带优化模块,在SQL语句执行前会进行一次优化
用一个例子就可以理解: select uid,name from user where gender = 1; 他使用的是“选取-投影-联接”策略进行查询。
例如这条SQL语句,执行的时候会过滤出gender这个字段,然后通过uid和name的属性投影,而不是将属性全部取出以后再进行过滤
将这两个查询条件联接起来生成最终查询结果
5.Cache和Buffer(高速缓存区): 查询缓存,如果查询缓存有命中的查询结果,查询语句就可以直接去查询缓存中取数据。 缓存类型:表缓存,记录缓存,key缓存,权限缓存等
6.Engine :存储引擎,可以理解为数据存取和处理的方式,常用的为MyISAM和InnoDB,Engine会单独讲解,
7.File system:个人理解是支持安装mysql的文件系统,例如NTFS、ext4等,windows中的FAT系统不支持安装mysql(未验证)
8.File&log:记录mysql的一些日志,例如慢查询日志、操作日志、错误日志等