Php Mysql查询太慢了

Php Mysql查询太慢了,php,mysql,Php,Mysql,所以我有这样的Mysql SELECT `A`.`ID`, IFNULL((SELECT * FROM `B` WHERE `B`.`To` = `A`.`ID`),0) FROM `A` ORDER BY (LOG10(IF(ABS(`X`)>=1,ABS(`X`),1))+(SIGN(`X`)*((`A`.`Date`)-1410530785))/45000) DESC B表大约有20k行 为什么它这么慢,需要10秒以上。这是一个相当复杂的按顺序执行的子句。将该值固定存储在一个附

所以我有这样的Mysql

SELECT `A`.`ID`, 
IFNULL((SELECT * FROM `B` WHERE `B`.`To` = `A`.`ID`),0)
FROM `A` 
ORDER BY (LOG10(IF(ABS(`X`)>=1,ABS(`X`),1))+(SIGN(`X`)*((`A`.`Date`)-1410530785))/45000) DESC
B表大约有20k行


为什么它这么慢,需要10秒以上。

这是一个相当复杂的
按顺序执行的子句。将该值固定存储在一个附加的索引行中可能会解决您的问题

现在要做的是在每次运行该查询时为每一行计算该值。这需要时间