mysql-一条sql的执行过程

1,登陆账号,链接上服务器。

2,取账号权限

3,(分析器)分析sql,是否符合语法。表名,是否存在,涉及表字段是否正确等等

4,(优化器)优化sql,是否需要使用索引。多个索引存在的情况下,哪个索引最合适。join 链接查询的话,先从哪个表开始比对等等

5,(执行器)查看是否有搜索涉及表的权限。执行sql。全表,或者索引树,一条一条比对下去

注意:账号权限在登陆时已经获取到了。登陆成功之后修改账号的密码不会影响已经建立链接的操作。

登陆账号之后建立了一个链接,链接长时间不使用的话,链接失效(wait_timeout 时间失效,默认8小时)。

长连接:链接查询了大数据之后,mysql占用内存会增大(查询的大数据存放在管理链接的对象内存中)。此处占用在链接断开的时候才会释放。

因此长时间使用长连接易出现OOM;

解决方案:定期断开长连接,或者判断执行过大数据查询之后断开

     执行大数据查询之后 执行mysql_reset_connection。

短链接:每次执行完很少的几次链接就断开连接。

因建立连接的过程比较复杂,固不建议使用短链接

相关推荐