SQL:一种熟悉又陌生的编程语言,你了解他吗?
在上面的执行过程描述中,多次提高了优化器。它也是数据库中最核心的组件。下面我们来介绍一下优化器。 ![]() 上面是我对优化器的一些认识。优化器是数据库的精华所在,值得DBA去认真研究。但是遗憾的是,数据库对这方面的开放程度并不够。(相对来说,Oracle还是做的不错的) ![]() 这里我们看到的MySQL的优化器的工作过程,大致经历了如下处理: 词法分析、语法分析、语义检查 预处理阶段(查询改写等) 查询优化阶段(可详细划分为逻辑优化、物理优化两部分) 查询优化器优化依据,来自于代价估算器估算结果(它会调用统计信息作为计算依据) 交由执行器执行 ![]() 此图是DBAplus社群MySQL原创专家李海翔对比不同数据库优化器技术所总结的。从这里可以看出: 不同数据库的实现层次不同,有些支持、有些不支持 即使支持,其实现原理也差异很大 这只是列出了一小部分优化技术 以上对比,也可以解释不同数据库对同样语句的行为不同。下面会有一个示例说明 八、SQL 执行计划 ![]() 看懂执行计划是DBA优化的前提之一,它为我们开启一扇通往数据库内部的窗口。但是很遗憾,从没有一本书叫做“如何看懂执行计划”,这里的情况非常复杂,很多是需要DBA常年积累而成。 ![]() 这是Oracle执行计划简单的示例,说明了执行计划的大致内容。 ![]() 【编辑推荐】
点赞 0 (编辑:晋中站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |