大きなテーブルからの選択の最適化:私は約40万行を持つテーブルがある、と私はこのような何かを実行したい
SELECT country, count(*) FROM `signups`
where `signed_up` > '2012-03-20 00:00:00'
group by country
基本的には特定の日付の後に国ごとにどのように多くのサインアップを取得するには(通常の先週は)。 1日あたり約400,000件の申し込みがあり、合計で約4,000万件があります。
最後の1週間はクエリが実行されないため、「MySQLサーバーがなくなった」というメッセージが表示されます...これを最適化する方法はありますか?
「国」にはどのようなインデックスがありますか? –
1つのインデックス、signup_idである主キー – luqita
** EXPLAIN ** SELECT ...コマンドを使用して、DBがクエリにどのように応答するかを確認します。このフィールドで検索してからsigned_upのインデックスも害を受けることはありません。 – luukes