MySQL优化句子

时间:2010-03-23 12:36:22

标签: sql mysql stored-procedures select

我有一个简单的表格,我必须提取一些记录。问题是评估函数是一个非常耗时的存储过程,所以我不应该像在这句话中那样调用它两次:

SELECT *, slow_sp(row) FROM table WHERE slow_sp(row)>0 ORDER BY dist DESC LIMIT 10

首先,我想像这样优化:

SELECT *, slow_sp(row) AS value FROM table WHERE value>0 ORDER BY dist DESC LIMIT 10

但由于在评估WHERE子句时未处理“value”,因此无法正常工作。

有没有想过优化这句话?感谢。

1 个答案:

答案 0 :(得分:2)

slow_sp有什么作用?要开始优化查询,您应在dist上添加索引。

要使您的第二个查询有效,请使用HAVING代替WHERE