查询优化(函数与子查询)

时间:2015-05-12 10:05:16

标签: mysql performance query-optimization

在MYSQL中最好在存储过程中使用函数(包含子查询)而不是直接编写子查询,它是否有任何区别或仅用于代码重用?

3 个答案:

答案 0 :(得分:1)

答案很简单:试一试并测量结果;最好是在一个现实的测试集上。 (当您的表中只有2条记录时,您可能看不到太多差异,但对200万条记录的影响可能很大)

您可以这样测试:

$starttime = microtime(true);
// your codes
$endtime = microtime(true);
echo $duration = $endtime - $starttime;
恕我直言,子查询很可能(很多)比存储在函数中的相同功能更快。但我有MSSQL偏见,并不能确定MySQL是否会有所不同;但我非常怀疑。

答案 1 :(得分:0)

使用函数(包括子查询)具有更好的性能,当您定义函数时,函数将在调用函数时不运行。我的意思是你可能有多个子查询,然后使用函数make来调用你需要的那些。

另一方面,使用该功能将对您的代码进行排序,这在开发中很有价值。

答案 2 :(得分:0)

我已经分析过,在存储过程中,当我直接添加子查询而不是函数时,我得到了5秒到1秒的差异。 我目前正在使用mysql