MySQL优化系列1-MySQL体系结构
MySQL体系结构(独有的插件式体系结构)
Connectors 连接器 支持多协议
- TCP/IP
- 命名管道和共享内存(window系统)
- UNIX域套接字(linxu或unix环境),只能是客户端和数据库实例在同一台服务器上时使用
mysql使用的是半双工通信方式(所以应用中要避免没有limit的查询,因为不做限制可能查出的数量很大)
Management Services&Utilities 系统管理和控制工具
mysqldump,mysql复制集群、分区管理等
Connetction Pool 连接池:
管理缓冲哟用户连接、用户名、密码、权限校验、线程处理等需要换纯的需求
SQL Interface SQL接口:
接受哟用户的sql命令,并且返回用户需要查询的结果
Parser 解析器:
SQL命令传递到解析器的时候会被解析器验证和解析,解析器是由Lex和YACC实现的
将sql解析成解析数,给预处理器处理
Optimizer 查询优化器,sql语句在查询之前会使用查询优化器对查询进行优化
SQL语句在查询之前会使用查询优化器对查询进行优化。他使用的是“选取-投影-联接”策略进行查询。
用一个例子就可以理解: select uid,name from user where gender = 1;
这个select 查询先根据where 语句进行选取,而不是先将表全部查询出来以后再进行gender过滤
这个select查询先根据uid和name进行属性投影,而不是将属性全部取出以后再进行过滤
将这两个查询条件联接起来生成最终查询结果
Cache & Buffers 查询缓存(MySql8已经废弃该功能),如果查询缓存有命中的查询结果,查询语句就可以直接去查询缓存中取数据
Pluggable storage Engines 插件式存储引擎(存储引擎是mysql独有的)
存储引擎是MySql中具体的与文件打交道的子系统.存储引擎是基于表的,而不是数据库,也就是说每张表都可以选择不同的存储引擎
不管使用什么存储引擎,每张表都会产生一个frm文件(表结构定义描述文件)
file System 文件系统
数据、日志(redo、undo)、索引、错误日志、查询记录、慢查询日志等