结构化查询语言(StructuredQueryLanguage)简称SQL,结构化查询语言是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。今天小编要为大家带来的一篇教程就是:介绍SQL语句变得超级慢的缘由以及解决方法。
一、出现现象
sql语句就是对数据库进行操作的一种语言大家在使用SQL编程语言进行开发应用程序的时候,不知道大家有没有遇见过一种现象?这种现象就是:突然就有一条SQL语句运行的超级慢了。具体的编程代码,如图所示:
二、出错原因
我们要解决一个问题的时候,首先要做的就是先找出这个问题的出错原因吧。那么大家有没有想过出现这一种情况,究竟是什么原因造成的呢?具体的出错原因如下:假如说有用户新增加了一个条件,这个条件为member.site=test。这样子的话,就会造成连接的顺序变化的情况了。那是因为本来的驱动表是uidTable(这个驱动表最多会有1024条记录),但是现在的话就已经变成了member表作为驱动表了(这个驱动表最多会有600W条)。大家可以看到,驱动表已经变大了,这就是这一条SQL语句变的超级慢的原因了。
有人就会问小编,但是既然就算是外连接,那么为什么连接的顺序会发生改变呢?不用着急,小编现在就告诉大家缘由吧。主要的原因就是因为外连接的连接顺序是由连接的条件进行决定的,并不是由COST进行决定的。那么这个时候,大家就会发现执行计划已经发生改变了。具体的执行计划,如图所示:
那么又有人会问,为什么根本就没有执行外连接呢?好了,现在小编就来解答大家的问题吧。其实主要的问题就是出在于以下这个条件中,具体的条件如下:member.site='test'。就是因为对外连接的数据表添加了新的条件,所以才会造成了外连接失效的情况出现。假如说我们将这一个条件修改成为以下这个条件,具体的条件如下:member.site(+)='test'。大家可以发现,当我们将条件修改成功以后,问题就会很彻底的解决。具体的编程代码,如图所示:
小编结语:
今天的教程“介绍SQL语句变得超级慢的缘由以及解决方法”,小编就已经介绍完毕了,大家都理解清楚了吗?如果你也有这样的需要,那就赶快来学习一下吧。更多更全面的编程语言教程,尽在课课家教育。
¥399.00
¥29.00
¥498.00
¥299.00