加入收藏 | 设为首页 | 会员中心 | 我要投稿 应用网_丽江站长网 (http://www.0888zz.com/)- 科技、建站、数据工具、云上网络、机器学习!
当前位置: 首页 > 服务器 > 安全 > 正文

首席DBA用SQL洪荒之力,造一把通向数据库的钥匙

发布时间:2021-01-09 18:12:32 所属栏目:安全 来源:网络整理
导读:副标题#e# 《首席DBA用SQL洪荒之力,造一把通向数据库的钥匙》要点: 本文介绍了首席DBA用SQL洪荒之力,造一把通向数据库的钥匙,希望对您有用。如果有疑问,可以联系我们。 本文根据DBAplus社群第70期线上分享整理而成 讲师介绍 韩锋宜信技术研发中心数据
副标题[/!--empirenews.page--]

《首席DBA用SQL洪荒之力,造一把通向数据库的钥匙》要点:
本文介绍了首席DBA用SQL洪荒之力,造一把通向数据库的钥匙,希望对您有用。如果有疑问,可以联系我们。

本文根据DBAplus社群第70期线上分享整理而成

讲师介绍

韩锋宜信技术研发中心数据库架构师

  • 精通多种关系型数据库,曾任职于当当网、TOM在线等公司,曾任多家公司首席DBA、数据库架构师等职,多年一线数据库架构、设计、开发经验.著有《SQL优化最佳实践》一书.
大家好,很高心今天有机会跟大家做这个分享.其次,感谢社群工作人员,组织保证这个活动得以开展.本次分享的题目是《SQL-通向数据库的一把钥匙》.希望通过此次的分享,让大家对SQL(这一古老的语言),有一种全新的认识.本人技术能力有限,只是把一些心得跟大家分享,希望能够与大家共同学习、共同提高.本次分享主要包括以下部分:

1、SQL语言的历史发展及重要性2、在新环境下SQL面临的各种疑问3、SQL优化法则、执行过程4、SQL优化器5、解读执行计划6、优化案例

一、SQL :一种熟悉又陌生的编程语言

这里有几个关键词;“熟悉”、“陌生”、“编程语言”.

说它“熟悉”,是因为它是DBA和广大开发人员,操作数据库的主要手段,几乎每天都在使用.说它“陌生”,是很多人只是简单的使用它,至于它是怎么工作的?如何才能让它更高效的工作?却从来没有考虑过.

这里把SQL归结为一种“编程语言”,可能跟很多人对它的认知不同.让我们看看它的简单定义(以下内容摘自百度百科)

结构化查询语言(Structured Query Language),简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统.结构化查询语言是高级的非过程化编程语言,允许用户在高层数据结构上工作.它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统,可以使用相同的结构化查询语言作为数据输入与管理的接口.结构化查询语言语句可以嵌套,这使它具有极大的灵活性和强大的功能.

总结一句话,SQL是一种非过程化的的编程语言,可通过它去访问关系型数据库系统.

从上面两张图可以发现,在近二十年来,SQL语言一直稳定出现在10~20名左右.它不同于一般的通用编程语言,作为一种功能较为“单一”的语言,能长期保持这样的排名,实属不易.这也印证了SQL语言的广泛流行性.

二、你真的了解“SQL”吗?

下面我会通过一个小例子,看看大家是否真正了解SQL.

这是一个很简单的示例,是关于SQL语句执行顺序的.这里将一个普通的SELECT语句,拆分为三个子句.那么在实际的执行过程中,是按照什么顺序处理的呢?这里有A-F六个选项,大家可以思考选择一下…

最终的答案是D,即按照先执行FROM子句,然后WHERE子句,最后是SELECT部分.

针对上面的示例,让我们真实构造一个场景,通过查看执行计划看看是否按照我们选择的顺序执行的.关于执行计划的判读,我后面会专门谈到.这里我先解释一下整个执行过程.

  • 第一步,是按照全表扫描的方式访问了对象表(EMP).对应于语句中的FROM部分.
  • 第二步,是对提取出的结果集进行了过滤(filter部分),即将满足条件的记录筛选出来.对应于语句中的WHERE部分.
  • 第三步,是对满足条件的记录进行字段投射,即将需要显示的字段提取出来.对应于语句中的SELECT部分.

这是一个详细的SQL各部分执行顺序的说明.

通过对执行顺序的理解,可以为我们未来的优化工作带来很大帮助.一个很浅显的认识就是,优化动作越靠前越好.

三、SQL现在是否仍然重要?

这里引入了一个新的问题,在现有阶段SQL语言是否还重要?

之所以引入这一话题,是因为随着NOSQL、NEWSQL、BIGDATA等技术逐步成熟推广,“SQL语言在现阶段已经变得不那么重要”成为一些人的观点.那实际情况又是如何呢?

让我们先来看一张经典的图.图中描述了传统SMP架构的关系型数据库、MPP架构的NEWSQL、MPP架构的NoSQL不同方案的适用场景对比.

(编辑:应用网_丽江站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读