SQL语法基础篇 —— 学会用数据库的方式思考SQL是如何执行的
Oracle中的SQL是如何执行的
SQL在Oracle中经历了几个步骤:
a.语法检查:检查SQL拼写是否正确,如果不正确,Oracle会报语法错误。
b.语义检查:检查SQL中的访问对象是否存在。
c.权限检查:看用户是否具备访问该数据的权限。
d.共享池检查:共享池是一块内存池,最主要的作用是缓存SQL语句和该语句的执行计划。
e.优化器:优化器中就是要进行硬解析,也就是决定怎么做,比如创建解析树,生成执行计划。
f.执行器:当有了解析树和执行计划之后,就知道了SQL该怎么被执行,这样就可以在执行器中执行语句了。
共享池是Oracle中的术语,包括了库缓存,数据字典缓冲区等。
MySQL中的SQL是如何执行的
MySQL是典型的C/S架构,即Clint/Server架构,服务器端使用的mysqld。
MySQL由三层组成:
1.连接层:客户端和服务端建立连接,客户端发送SQL至服务端;
2.SQL层:对SQL语句进行查询处理;
3.存储引擎层:与数据库文件打交道,负责数据的存储和读取。
SQL层的结构