执行器阶段,执行语句。

    开始执行的时候,要先判断一下你对这个表T有没有执行查询的权限

    • 如果有权限,就打开表继续执行。打开表的时候,执行器就会根据表的引擎定义,去使用这个引擎提供的接口
    • 如果没有,就会返回没有权限的错误,如下所示 ```sql mysql> select * from T where ID=10;

    ERROR 1142 (42000): SELECT command denied to user ‘b’@’localhost’ for table ‘T’ ```

    比如我们这个例子中的表T中,ID字段没有索引,那么执行器的执行流程是这样的:

    1. 调用InnoDB引擎接口取这个表的第一行,判断ID值是不是10,如果不是则跳过,如果是则 将这行存在结果集中;
    2. 调用引擎接口取“下一行”,重复相同的判断逻辑,直到取到这个表的最后一行;
    3. 执行器将上述遍历过程中所有满足条件的行组成的记录集作为结果集返回给客户端。