数据库服务端是 如何解析SQL语句的?
第一:先查询高速缓存,看有没有数据存在,就是之前已经查询的数据,若有就立马返回,
这就可以解释:为什么第一次查询很慢,第二次查询就特别快的原因了;
第二 : 语句合法性解析
第三: 语言含义解析:
第四: 获得锁: 保证数据的一致性;
第五:数据访问权限核对,若数据库权限不足是不能访问数据的;
第六:确定最佳执行计划,这个就是根据数据库内部的优化算法进行优化,但是这种优化是有限度的。大部分还是靠自己来优化;
第七: 绑定变量赋值
第八:执行语句;
第九: 语句提取: