私のウェブサイトでは、バスケットボール選手の統計情報を保存しています。現在、以下のコードを使用していますが、各プレイヤーに11個の属性統計があるため、各チームに132個のクエリが必要です。したがって、264個のクエリがチームに必要です。デバッグでは、私のサイトに多くの時間を費やす各クエリに対して、0.5秒必要であることがわかりました。クエリを高速化します。 WordpressのPhp Sql
- データベース内のレコードは実行時間に影響しますか?私は2mのレコードを持っていましたが、今は1.mのレコードを持っているので、違いはほとんど見られません。
クエリを高速化するためにこのコードを書く方が良いですか?
$出力。= ''; $出力。= ''; $出力。= ''; = '' .__( 'イベント追加'、 'leagueengine')。 ''; $出力。= ''; 。
$output .= '</tr>'; $output.="<tr><td></td></tr>"; $output.="<tr><td colspan='2'>".__('Home Team','leagueengine')."</td>"; $events = $wpdb->get_results("SELECT * FROM wp_leagueengine_data WHERE data_type = 'event' ORDER BY sort_order ASC, data_value ASC"); //$events_count=0; foreach($events as $event) { $output.="<th><center><small>$event->data_value</small></center></th>"; // $events_count++; } $output.="</tr>"; $t_p=count ($homeplayers2); if($t_p){ foreach($homeplayers2 as $homeplayer){ $output.="<tr>"; $output.="<td colspan='2'>".leagueengine_fetch_data_from_id($homeplayer->player_id,'data_value')."</td>"; foreach($events as $event){ $evcount = $wpdb->get_results("SELECT count(*) as total_events FROM $table2 WHERE match_id='$mid' AND player_id='$homeplayer->player_id' AND event_id='$event->id'"); $total= $evcount[0]->total_events; $output.="<td><input type='text' name=hm-$homeplayer->player_id-$event->id value='$total'/></td>"; } $output.="</tr>"; } } else{ $output.="<tr><td colspan='12'>No player attending this match</td></tr>";} $output.="<tr><td></td></tr>";
$出力= '';
uはループでSQLを実行するべきではありません。 1つのSQLステートメントを使用して、結果を必要とするインデックスを呼び出すようにしてください。 – KikiTheOne
テーブルのインデックスを作成しましたか? –
いいえ、私はインデックスを付けません。私はプラグインを使って1日に約10回イベントテーブルを追加して更新します。大きな問題は、各プレイヤーの合計合計イベント数をカウントする場合です –