图文结合带你搞懂GreatSQL体系架构
往期系列回顾
- 图文结合系列之带你搞懂MySQL日志系列
很多小伙伴使用了GreatSQL,但是对GreatSQL的底层原理还不是很了解,今天就带大家一起揭开GreatSQL体系架构的神秘面纱!
首先来回顾一张经典的体系架构图:
图1_GreatSQL5.7 版本体系架构图
由此可以发现,GreatSQL5.7 由以下几部分组成
- 连接池组件
- 系统管理和控制工具
- SQL接口组件
- 查询解析器
- 查询优化器
- 缓存组件
- 可插拔存储引擎
- 系统和日志文件
GreatSQL数据库区别于其他数据库的一个特点就是其可插拔的表存储引擎,特别需要注意的是,存储引擎是基于表的,而不是数据库。
然而,经典同时也意味着这幅图已经相当陈旧了。在GreatSQL8.0 及更高版本中,查询缓存这一功能已经被移除。
图2_GreatSQL8.0 版本体系架构图
总体来说,GreatSQL8.0 可以分为连接层、服务层、存储引擎层。
一、连接层(Client Connectors)
连接层又名为客户端连接器(Client Connectors)
作用是提供与GreatSQL服务器建立的支持。
客户端通过TCP/IP协议与GreatSQL服务器建立连接,每个连接对应一个线程。连接管理还包括了连接池技术,以复用已经建立好的连接,减少重复建立连接的开销。
而且几乎支持所有主流的服务端编程技术,主要完成一些类似于连接处理、授权认证、及相关的安全方案。
会对从 TCP 传输过来的账号密码做身份认证、权限获取
- 用户名或密码不对,会收到
Access denied for user
错误,客户端程序结束执行
例如:
$ mysql -uroot -p
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)