Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie kann ich diese SELECT CONCAT/GROUP BY-Abfrage beschleunigen?

Erstellen Sie einen zusammengesetzten Index für (state, city) und schreiben Sie Ihre Abfrage wie folgt um:

SELECT  CONCAT_WS(', ', city, state) AS location, AVG(latitude), AVG(longitude) 
FROM    places
WHERE   state='NY'
        AND city='New York'
GROUP BY
        state, city

Beachten Sie, dass Sie für genau diese Abfrage GROUP BY weglassen können Klausel:

SELECT  'New York, NY' AS location, AVG(latitude), AVG(longitude) 
FROM    places
WHERE   state='NY'
        AND city='New York'

Diese Abfrage benötigt es jedoch weiterhin:

SELECT  CONCAT_WS(', ', city, state) AS location, AVG(latitude), AVG(longitude) 
FROM    places
WHERE   state='NY'
GROUP BY
        state, city