一个左联查询如下所示:
SELECT A.OID,A.NAME,A.BITRHDAY,getcode(t.name) FROM EMP A LEFT JOIN tt as t ON A.OID=t.EMPOID
这条SQL执行的时间是6秒,我把getcode函数去掉的话,就变成了2秒,慢了3倍,
而单独执行getcode中的SQL是1毫秒,
getcode中的SQL也是加了索引的,EMP表的关链用字段OID也是加了索引的。
还想用这个getcode函数的同时,上面的SQL怎么样才能再提高执行效率呢?
我把getcode函数中的SQL直接放到上面的位置,速度也是一样的。
加上getcode函数后,还是2秒到3秒的执行时间才是理想的。
------解决方案--------------------------------------------------------
select *,getcode(name) from (
SELECT A.OID,A.NAME,A.BITRHDAY FROM EMP A LEFT JOIN tt as t ON A.OID=t.EMPOID
) as t
这样试试
------解决方案--------------------------------------------------------
不要轻易加索引,只有在需要的时候
不可能为每一种查询去建索引,优化那些最需要优化的,比如使用频率高的,或者关键查询