我正在尝试优化以下查询。
表seafood_tbl有500条记录
表 discs_tbl 有 10,000 条记录
当我在 PHPmyadmin 中运行它时,执行需要 20 秒,也就是永恒。
SELECT
SUM(a.squid)
FROM seafood_tbl a
INNER JOIN dishes_tbl b ON
( b.id_group = a.id AND b.choice =0 )
OR
( b.id_chef = a.id_chef AND ISNULL( b.id_group ))
GROUP BY a.id
我对连接中引用的每个字段都有索引。我在 discs_tbl 上运行了 OPTIMIZE TABLE。
这是解释的输出。
1 SIMPLE a ALL PRIMARY NULL NULL NULL 505 Using temporary; Using filesort
1 SIMPLE b ref_or_null choice_index,id_group_index,id_chef id_group_index 5 a.id 4 Using where
我的查询是否有严重问题,或者我应该寻找其他地方?