MySQL分为三层连接层,SQL层和存储层。
客户端,应用软件等直接链接到连接层,处理信息时在SQL层,存储信息在存储层。
连接层中分为三种,即通讯协议,线程,验证。
通讯协议是指:
1,协议在客户端库和驱动程序中实现
2,连接协议的速度因本地设置而不同
连接线程是指:
1,服务器为每个活动客户端连接创建一个连接线程,该客户机执行的所有语句都由单个服务器线程执行,当客户端断开连接时,服务器销毁线程。
2,线程池插件分别管理连接和服务器线程,使用线程组管理客户端连接,每个线程组在任何时间点都只允许一个短时间运行的语句,减少服务器线程数,一个线程组允许多个长时间运行的语句,根据事务成员身份区分高优先级语句和低优先级语句,正在运行的事务中的语句具有高优先级,长时间运行的事务得到改进。
SQL 层又分为,解析器,查询执行,授权,优化程序,可选: 查询日志记录
建立连接后,MySQL 处理 SQL 层中的每个查询,它包括以下组件:
1,解析器:验证查询的语法和语义并将其转换为标准形式
2,授权:验证连接的用户是否被允许运行查询并且对查询所引用的对象具有足够的权限
3,优化器:为每个查询创建最佳执行计划。 这涉及决定使用哪些索引以及以何种顺序处理
表.
4,查询执行:完成每个查询的执行计划
5,查询日志:记录服务器接收或执行的查询
存储层分为,磁盘(InnoDB MyISAM),内存(MEMORY),网络(NDBCLUSTER)
InnoDB:这是默认的内置存储引擎发动机,除非特殊情况,请使用此存储引擎。