首席DBA用SQL洪荒之力,造一把通向数据库的钥匙
《首席DBA用SQL洪荒之力,造一把通向数据库的钥匙》要点: 本文根据DBAplus社群第70期线上分享整理而成 讲师介绍
一、SQL :一种熟悉又陌生的编程语言这里有几个关键词;“熟悉”、“陌生”、“编程语言”. 说它“熟悉”,是因为它是DBA和广大开发人员,操作数据库的主要手段,几乎每天都在使用.说它“陌生”,是很多人只是简单的使用它,至于它是怎么工作的?如何才能让它更高效的工作?却从来没有考虑过. 这里把SQL归结为一种“编程语言”,可能跟很多人对它的认知不同.让我们看看它的简单定义(以下内容摘自百度百科) 总结一句话,SQL是一种非过程化的的编程语言,可通过它去访问关系型数据库系统. 从上面两张图可以发现,在近二十年来,SQL语言一直稳定出现在10~20名左右.它不同于一般的通用编程语言,作为一种功能较为“单一”的语言,能长期保持这样的排名,实属不易.这也印证了SQL语言的广泛流行性. 二、你真的了解“SQL”吗?下面我会通过一个小例子,看看大家是否真正了解SQL. 这是一个很简单的示例,是关于SQL语句执行顺序的.这里将一个普通的SELECT语句,拆分为三个子句.那么在实际的执行过程中,是按照什么顺序处理的呢?这里有A-F六个选项,大家可以思考选择一下… 最终的答案是D,即按照先执行FROM子句,然后WHERE子句,最后是SELECT部分. 针对上面的示例,让我们真实构造一个场景,通过查看执行计划看看是否按照我们选择的顺序执行的.关于执行计划的判读,我后面会专门谈到.这里我先解释一下整个执行过程.
这是一个详细的SQL各部分执行顺序的说明. 通过对执行顺序的理解,可以为我们未来的优化工作带来很大帮助.一个很浅显的认识就是,优化动作越靠前越好. 三、SQL现在是否仍然重要?这里引入了一个新的问题,在现有阶段SQL语言是否还重要? 之所以引入这一话题,是因为随着NOSQL、NEWSQL、BIGDATA等技术逐步成熟推广,“SQL语言在现阶段已经变得不那么重要”成为一些人的观点.那实际情况又是如何呢? 让我们先来看一张经典的图.图中描述了传统SMP架构的关系型数据库、MPP架构的NEWSQL、MPP架构的NoSQL不同方案的适用场景对比. (编辑:ASP站长网) |