WEB开发网
开发学院数据库MySQL 浅谈SQLite——查询处理及优化 阅读

浅谈SQLite——查询处理及优化

 2010-06-25 00:00:00 来源:WEB开发网   
核心提示: 来看看该SQL语句生成的语法树:FROM部分:第一个表项:表名zName =”stduents”,zAlias=”s”,浅谈SQLite——查询处理及优化(4),jointype = 0,第二个表项:注意,对于上面要SQL语句,生成的执行计划(虚拟

来看看该SQL语句生成的语法树:

FROM部分:

第一个表项:

浅谈SQLite——查询处理及优化

表名zName =”stduents”,zAlias=”s”,jointype = 0。

第二个表项:

浅谈SQLite——查询处理及优化

注意,jointype = 1(JT_INNER)。

第三个表项:

浅谈SQLite——查询处理及优化

注意,jointype = 1(JT_INNER)。

WHERE部分(结点类型为Expr的一棵二叉树):

浅谈SQLite——查询处理及优化

2、生成执行计划(语法树到OPCODE)

Select的执行计划在sqlite3Select中完成:

int sqlite3Select(
  Parse *pParse,         /* The parser context */
  Select *p,             /* SELECT语法树 */
  SelectDest *pDest      /* 如果处理结果集 */
)

其实,该函数先对SQL语句进行语义分析,然后再进行优化,最后生成执行计划。

对于上面要SQL语句,生成的执行计划(虚拟机opcode)大致分成5部分,前4部分都在sqlite3Select()中生成,它主要调用了以下几个函数:

上一页  1 2 3 4 5 6 7 8 9  下一页

Tags:SQLite 查询处 理及

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接