MySQL group-by very slow

后端 未结 5 2149
予麋鹿
予麋鹿 2021-02-07 05:34

I have the folowwing SQL query

SELECT CustomerID FROM sales WHERE `Date` <= \'2012-01-01\' GROUP BY CustomerID

The query is executed over 11

5条回答
  •  名媛妹妹
    2021-02-07 06:11

    Try putting an index on (Date,CustomerID).

    Have a look at the mysql manual for optimizing group by queries:- Group by optimization

    You can find out how mysql is generating the result if you use EXPLAIN as follows:-

    EXPLAIN SELECT CustomerID FROM sales WHERE `Date` <= '2012-01-01' GROUP BY CustomerID
    

    This will tell you which indexes (if any) mysql is using to optimize the query. This is very handy when learning which indexes work for which queries as you can try creating an index and see if mysql uses it. So even if you don't fully understand how mysql calculates aggregate queries you can create a useful index by trial and error.

提交回复
热议问题