石怡
(江苏信息职业技术学院 物联网工程学院,江苏 无锡 214153)
大数据时代,传统关系型数据库管理系统(RDBMS)在处理海量数据时经历着严峻的性能考验。数据库性能的提升与数据查询的执行效率密切相关。查询操作是一个数据库系统运行时最主要的负载。事实上,对数据的增删改操作也常常建立在对所需数据检索的基础之上。因此,对查询语句的优化是数据库性能优化至关重要的手段之一。
MySQL数据库因其开放源码、运行速度快、磁盘空间占用少等优点,得到了广泛的应用,特别是在中小型WEB网站的后台应用。
SQL查询语句在MySQL数据库中的执行过程主要划分为“SQL输入->词法扫描->语法分析->语义检查->优化->执行”6个阶段[1],具体步骤如下:
(1)根据应用系统业务逻辑要求编写并输入相关SQL语句。
(2)由词法扫描器识别出SQL语句所包含的操作符、操作字符串和空格等单词。
(3)由语法分析器根据SQL语法规则,判断诸如关键字拼写、关键字出现顺序、引号匹配等是否正确,生成得到一棵语法分析树。
(4)由预处理器检验第(3)步语法树的合法性。通过对树中各节点进行逻辑判断,以生成新的解析树,但树的结构保持不变。如出现所需数据库对象不存在,或别名重名等语义错误将报告反馈。
(5)由查询优化器进行SQL优化,包括逻辑和物理优化。逻辑优化以关系代数为基础,对语法分析树的节点调整后生成关系代数语法树。物理优化以选取最小代价为原则,进一步对查询的连接顺序、扫描方式、连接算法等进行评估与调整,最终得到查询树,即查询执行计划。……p>