Why isn't query using index and how to optimize it?
I have an SQL query that runs for 114 seconds. The table contains 224000
rows.
Why isn't it using key for 'products' table?
Does anybody have some ideas how to optimize this query?
EXPLAIN SELECT SUM( quantity * (
SELECT IF( netoweight = '', weight, netoweight ) AS weight
FROM products
WHERE product_nr = it.item ) /1000 )
FROM `inventory_transactions` it
WHERE it.type = 'Production'
AND it.item > '200000'
AND it.item < '400000'
AND it.date LIKE '2013-01%'
AND (
(
SELECT COUNT( id )
FROM structure
WHERE final_item = it.item
AND level > '1'
) <1
)
id select_type table type possible_keys
key key_len ref rows Extra
1 PRIMARY it ref item,type,date
type 50 const 111604 Using where
3 DEPENDENT SUBQUERY structure ref final_item,level,level_2
final_item 4 it.item 8 Using where
2 DEPENDENT SUBQUERY products ALL product_nr
NULL NULL NULL 3831 Using where
No comments:
Post a Comment