我试图了解Mysql Explain,并且我读到类型“ ALL”是性能最差的。我只写了一个非常简单的sql,只剩下一个左联接
SELECT * FROM production_plan_header pph LEFT JOIN production_plan_details ppd ON ppd.ppd_header_id = pph.pph_id WHERE pph.pph_id =1
如果我对此使用EXPLAIN,则会得到以下信息。
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE pph const PRIMARY PRIMARY 4 const 1
1 SIMPLE ppd ALL ppd_header_id NULL NULL NULL 7
如您所见,production_plan_details的类型为“ ALL”。这些行显示表(7)中的行总数。 ppd_header_id列已建立索引。有没有办法防止我的sql语句出现“ ALL”?
最佳答案
我不确定我是否正确回答了您的问题,但是如果您要删除Type =“ ALL”的行,在这种情况下,您可以像下面这样编写查询。
SELECT *
FROM production_plan_header pph
LEFT JOIN production_plan_details ppd
ON ppd.ppd_header_id = pph.pph_id
WHERE pph.pph_id = 1
AND ppd.type <> "ALL"
关于mysql - 在MySQL中防止'ALL'类型解释SQL,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48655448/