MySQL逻辑结构图
select * from T where id=1
比如一条SQL语句,从我们的客户端出发开始进入MySQL,首先接待他的是连接器
连接器
连接器接待之前会验证他的身份是否正确,就是我们的SQL账号密码是否一致
mysql -h $ip -P $port -u $user -p
密码错误,报错,结束
如果验证通过,连接器会到权限表里面查询该用户所拥有的权限.之后,这个链接所有的权限逻辑判断,都依赖于这次查询
这意味着,当连接器查询之后,如果再修改该用户权限,不会再经生成的连接生效
连接建立完成后,如果长时间没有后续动作,连接器就会自动关闭它,由wait_timeout属性决定,默认是8小时.
连接通常建立比较复杂,尽量使用长连接,减少建立连接的开销.
问题:有时候MySQL内存涨的很快,这是因为MySQL执行过程的内存是管理在连接对象上的,只有连接断开才会关闭
解决:1.定期断开长连接
2.高版本MySQL可以使用mysql_reset_connection来初始化连接资源