我有这个问题:
SELECT DISTINCT id,
label
FROM bbproduct_cust
WHERE CUSTNO IN (SELECT CUSTNO
FROM customer
WHERE SLSRPTGRP = '1996')
AND DEPTNO = '0'
ORDER BY label ASC
EXPLAIN
显示
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY bbproduct_cust ALL ind_deptno 91834 Using where; Using temporary; Using filesort
2 DEPENDENT SUBQUERY customer ref PRIMARY,ind_slsrptgrp ind_slsrptgrp 3 const 4 Using where
需要2-3秒,我需要优化它。
我有哪些选择?
答案 0 :(得分:1)
使用 INNER JOIN ,而不是 IN 选择
像
这样的东西SELECT DISTINCT id,
label
FROM bbproduct_cust INNER JOIN
customer ON bbproduct_cust.CUSTNO = customer.CUSTNO
WHERE SLSRPTGRP = '1996'
AND DEPTNO = '0'
ORDER BY label ASC
答案 1 :(得分:0)
使用INDEX提高性能。 Click here了解更多详情。