天天看点

MySQL之基础架构

MySQL之基础架构

连接器

连接器负责跟客户端建立连接、获取权限、维持和管理连接。

mysql -h$ip -P$port -u$user -p      
  1. TCP握手
  2. 验证身份
  • 不对,返回“Access denied for user”
  • 通过,连接器会到权限表查询拥有的权限
一个用户成功建立连接后,即使用管理员账号对这个用户的权限做了修改,也不会影响已经存在连接的权限。

通过show processlist命令可以查看连接。建立连接后客户端如果太长时间(参数wait_timeout控制,默认8小时)没有动静,连接器会自动断开连接。

问题:MySQL在执行过程中临时使用的内存是管理在连接对象的,这些资源在断开时才会释放。所以如果长连接太多,可能导致内存占用太大,被系统强行杀掉。

  • 定期断开长连接
  • MySQL 5.7或之后版本,执行一个较大操作后,执行mysql_reset_connection来重新初始化连接资源。

分析器

  • 词法分析,识别SQL语句中的字符串分别代表什么
  • 语法分析,根据语法规则判断SQL语句是否满足MySQL语法

优化器

执行器

继续阅读