Jump to content

[MYSQL] Group by subquery takes 2 minutes to process


CrossMotion

Recommended Posts

I have a simple SQL query with a group by subquery that runs on a table with 3000 records. It takes aboud 2 minutes to run the code in PHPmyadmin. Is there a way to speed this up?

SELECT partnumber, product_id
FROM products
WHERE partnumber IN (
  SELECT partnumber
  FROM products
  GROUP BY partnumber
  HAVING count(*) > 1 )
ORDER BY partnumber;

try

SELECT partnumber, product_id
FROM products
JOIN (
  SELECT partnumber
  FROM products
  GROUP BY partnumber
  HAVING count(*) > 1 ) as counts USING (partnumber)
ORDER BY partnumber;

PS Do you have an index on partnumber?

Sounds like a result!.

 

If you run an EXPLAIN on your original query you will, no doubt, see the words DEPENDENT SUBQUERY.

 

That means the query is being called for every row. With a "table subquery" like mine it is is called once.

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.