私はこのクエリを実行しようとしています:
SELECT
COUNT(events.event_id) AS total_events,
COUNT(matches.fight_id) AS total_matches,
COUNT(players.fighter_id) AS total_players,
COUNT(DISTINCT events.organization) AS total_organizations,
COUNT(DISTINCT players.country) AS total_countries
FROM
events, matches, players
表の詳細は次のとおりです。イベント=21,000人のプレーヤー=90kの試合=155k
これらはすべて一意であるため、クエリの最初の3つはそれらの数値になります。他の2つの値はtotal_organizationsである必要があります。ここで、組織列はイベントにあり(数百を返す必要があります)、total_countriesは、プレーヤーテーブルのcountry列を使用して個別の国をカウントする必要があります(これも数百)。
これらの3つのID列はすべて一意であり、インデックスが付けられています。
現在のこのクエリは永遠にかかります。私はそれが完了するのを見るのに我慢することさえありません。これを行うより速い方法はありますか?
また、ページを読み込むたびにこれらの結果を読み込むためにこれが必要なので、このクエリを隠しファイルに入れて、cronジョブを設定して、深夜などに実行し、「合計」テーブルなどにデータを入力して、取得できるようにする必要があります。そのテーブルからすぐに?
ありがとう!