私たちのサイトには78の広告ボタンがあり、サイズの理由からメインのデータベースから統計情報を分離しています。ボタンの1つをクリックするたびに記録し、情報をすばやく取得できる統計画面に取り組んでいます。クエリ内の関連するカウント
上記のクエリは機能しますが、実行するには4000秒かかりますが、どのようにして同じ結果をより効率的に得ることができますか。
SELECT
buttons.buttonID,
buttons.live,
buttons.title,
buttons.image,
count(buttonclicks.id) as count
FROM buttons INNER JOIN otherdb.buttonclicks ON buttons.buttonID = buttonclicks.buttonid
WHERE buttonclicks.type=0
GROUP BY buttons.buttonID
ORDER BY buttons.live DESC, buttons.buttonID ASC
が高速ですが、唯一の理由は、WHERE句の過去3ヶ月(我々は古いクリックをアーカイブする)でクリックされているこれらのボタンをピックアップ:
としてクエリを実行します。
ソリューション?
ボタンをクリックしてボタンを '記述できますか?あなたはイデックスを適切に設定しましたか? – user973254
2番目のクエリでINNERではなくLEFTを使用します。 – symcbean
buttonidはbuttonclicksのインデックスであり、buttonIDはボタン用です。 – jonners99