2018-09-09 14:30

 版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处、作者信息和本声明,否则将追究法律责任。https://blog.kokojia.com/gman/b-1783.html

  作为一名软件研发者,你对于SQL性能调优了解有多少?你知道SQL执行的原理吗?知道SQL的语句执行顺序吗?就算不知道也没关系,小编相信看了这篇文章,你就会知道了。

  1.关于SQL执行的原理

  第一步:客户端要把SQL的语句发给服务器端

  第二步:语句解析,分为下面几步:

  ①我们从缓冲池中查找是否有相同的SQL语句,其中对于相同SQL的判断有二方面限制(第一个方面,fasql语句完全相同,包括空格、换行等;第二个方面,绑定变量要完全相同)。

  ②语言语义检查,检查是否有sql语法错误,这会很消耗内存资源。

  ③获得对象解析锁。

  ④核对数据访问权限。

  ⑤确定最佳的执行计划。

  第三步:执行执行计划

  首先我们要到缓存中查询是否已经在缓存了,如果不在的话会到数据库查询到数据然后放到缓存,在的话则直接返回。

  第四步:提取数据

  我们查询出的数据还是在服务器的进程中,需要通过这个过程将服务器进程中的数据提取到客户端的进程里面。

  2.sql语句执行顺序

  from子句-->where子句-->groupby-->having-->select-->orderby,如图所示:

sql语句执行顺序

     其中from子句和where子句会根据数据库的不同从而导致执行顺序的不同,db2是从左往右,oracle是从右往左,另外orderby和having子句很耗费资源,要尽量避免使用,由于where子句的执行顺序,我们可以将过滤最多的条件放到最先执行。

     3.对于索引的使用

  对于索引的使用我们要小心,对于大数据量的表创建索引是非常值得的,有很多写法会导致索引失效,如果selec*fromuseruwhereu.age+1>10;其中age已经被创建索引这样对索引进行计算会导致索引失效。

  4.创建索引

  项目开始的时候最好不要创建索引,到了后期再创建索引会比较好,因为在项目的前期一般会对数据库的变动会比较大,这个时候维护索引得不偿失,索引的创建不一定会提高效率。

      小编结语:

  相信你看到这里,也已经知道了这有关于SQL性能调优的知识点了吧,希望能帮到你。当然,这只是小编的一些个人看法,仅供参考。


【所有视频永久观看】SQL结构化查询语言”相关知识

SQL语言,是结构化语言(Structured Query Language)的简称。SQL语言是一种数据库和程序设计语言,用于存取以及查询、和管理关系数据库;同时也是数据库脚本文件的扩展名。

2018软考-SQL结构化查询语言教程:http://www.kokojia.com/course-4295.html

1536474623512519.gif

 版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处、作者信息和本声明,否则将追究法律责任。https://blog.kokojia.com/gman/b-1783.html

评论