所以我有像这样的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秒以上。
答案 0 :(得分:2)
这是一个ORDER BY
条款。将该值固定在附加的索引行中可能会解决您的问题。
您现在正在做的是,每次运行该查询时,每行计算该值。这需要时间。