敏***敏
数据库执行sql的大致流程粗略流程,所有关系型数据库都是这几步,具体前后顺序根据不同dbms不同配置下略有小差别,以下过程都需要耗时耗资源1.应用程序与数据库服务器建立链接2.sql发送到数据库,数据库验证是否有执行的权限3.进入语法解析器,进行词法与语法分析4.进入优化器生成执行计划,部分dbms会检查是否有可重用的执行计划5.根据执行计划依次扫描相关表中的行,不在数据缓冲区的走io6.同时对于被扫描的行可能加锁,同时也可能会被其他sql阻塞7.扫描的行足够放入查询缓存则开始运算或直接返回,不够则生成临时表,可能消耗io8.对sql结果进行计算(可能)9.将计算完成的结果全部写入网络io(可能)10.如果事务完成则同步事务日志并释放锁,具体方式取决于dbms和当前配置11.关闭连接(可选)