私はデータベースから場所(都道府県)を選択しています。問題は、クエリが少し遅く実行されていると私はそれをスピードアップする方法がわからないということです。例えば:私は(代わりにコードでこれを行うには理由がありますしない限り)データベースは、場所のかわいい、連結バージョンを返すようにしたいのでどのようにこのSELECT CONCAT/GROUP BYクエリを高速化できますか?
SELECT CONCAT_WS(', ', city, state) as location, AVG(latitude), AVG(longitude)
FROM places
WHERE city='New York' AND state='NY'
GROUP BY location
は、場所を問わずにCONCATがあるようになるだろう。たとえば、「New York、NY」と入力します。実際には、第3列がミックス(郵便番号)にスローされることがあります。私はMySQLで動作しています。
このクエリを最適化するにはどうすればよいでしょうか?
また、副次的な質問として、「DISTINCT」を追加するとクエリが遅くなりますか?たとえば、次のように
SELECT DISTINCT CONCAT_WS(', ', city, state) as location, AVG(latitude), AVG(longitude)
FROM places
WHERE city='New York' AND state='NY'
GROUP BY location
(私は現在、今これをやっているが、この質問をする過程で、私はDISTINCTが原因GROUP BY句に必要ではなかったことに気づき、それが不要であるため、私は疑問に思う、しかし、何か相違があっても、質問をスピードアップするためにボートを揺らすのが苦労しなければならないのですか?)
編集:都市、州、郵便番号のインデックスは既にあります。それらの組み合わせ(都市、郵便番号、州/郵便番号のみ)
使用、それはメイン減速何をお届けしますポイント – dusoft