学会用数据库的方式思考SQL是如何执行的

虽然SQL是声明式语言,我们可以像使用英语一样使用它,不过在RDBMS(关系型数据库管理系统)中,SQL的实现方式还是有差别的。今天我们就从数据库的角度来思考一下SQL是如何被执行的。

关于今天的内容,你会从以下几个方面进行学习:

  1. Oracle中的SQL是如何执行的,什么是硬解析和软解析;
  2. MySQL中的SQL是如何执行的,MySQL的体系结构又是怎样的;
  3. 什么是存储引擎,MySQL的存储引擎都有哪些?

Oracle中的SQL是如何执行的

我们先来看下SQL在Oracle中的执行过程:
学会用数据库的方式思考SQL是如何执行的_第1张图片
从上面这张图中可以看出,SQL语句在Oracle中经历了以下的几个步骤。

  1. 语法检查:检查SQL拼写是否正确,如果不正确,Oracle会报语法错误。

  2. 语义检查:检查SQL中的访问对象是否存在。比如我们在写SELECT语句的时候,列名写错了,系统就会提示错误。语法检查和语义检查的作用是保证SQL语句没有错误。

  3. 权限检查:看用户是否具备访问该数据的权限。

  4. 共享池检查:共享池(Shared Pool)是一块内存池,最主要的作用是缓存SQL语句和该语句的执行计划。Oracle通过检查共享池是否存在SQL语句的执行计划,来判断进行软解析,还是硬解析。那软解析和硬解析又该怎么理解呢?

    点击查看原文>

你可能感兴趣的:(数据库,思考,sql)