我有一个简单的表,我必须从中提取一些记录。问题是求值函数是一个非常耗时的存储过程,所以我不应该像下面这句话那样调用它两次:
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“。
有什么办法优化这句话吗?谢谢。
发布于 2010-03-23 20:41:53
slow_sp是做什么的?要开始优化查询,您应该在dist上添加一个索引。
要使第二个查询工作,请使用HAVING而不是WHERE。
https://stackoverflow.com/questions/2499848
复制相似问题