MySQL体系架构
MySQL Server架构自顶向下大致可以分网络连接层、服务层、存储引擎层和系统文件层
网络连接层
客户端连接器(Client Connectors):提供与MySQL服务器建立的连接支持
mysql -h$ip -P$port -u$user -p
一个用户成功建立连接后,即使你用管理员账号对这个用户的权限做了修改,也不会影响已经存在连接的权限。修改完成后,只有再新建的连接才会使用新的权限设置
目前几乎支持所有主流 的服务端编程技术,例如常见的 Java、C、Python、.NET等,它们通过各自API技术与MySQL建立连接。
服务层
服务层是MySQL Server的核心,主要包含系统管理和控制工具、连接池、SQL接口、解析器、查询优化器和缓存六个部分
系统管理和控制工具(Management Services & Utilities)
功能:备份恢复、安全管理、集群管理等
连接池(Connection Pool)
负责存储和管理客户端与数据库的连接,一个线程负责管理一个连接
运用了线程复用技术
Mysql 性能测试报告: 连接池可以使性能,稳定性提升n倍
- 并发量达128下,若无线程池则迅速下降,使用则读写模式高出60倍
- 只读模式达512下,提升18倍
- 原因: 客户端建立连接,断开连接会频繁创建释放线程,浪费资源,损耗性能
SQL接口(SQL Interface)
用于接受客户端发送的各种SQL命令,并且返回用户需要执行的结 果。比如DML、DDL、存储过程、视图、触发器等。
解析器(Parser)
负责将请求的SQL解析生成一个"解析树"。然后根据一些MySQL规则进一步检查解析树是否合法。