0

PDO を使用して、MySQL データベースから結果を取得しています。

実行ステートメントだけを実行している場合は、約8 seconds. (同じことを350回続けて。)

fetchAll()ステートメントを追加すると、最大28 秒になります。これは正常な動作ですか?

Web サーバーと db サーバーの間のネットワーク テスト速度を実行しましたが、87 Mbits/secそれが問題になることはありません。何か案は?

4

1 に答える 1

1

実行の 8 秒もとてつもなく長いです。これは、テーブルに正しくインデックスが作成されていないことを示しています。その結果、テーブルからデータを取得するのに非常に長い時間がかかります。一時テーブルも使用している可能性があります。

「検索」で使用されるフィールド、または索引付けされた結合テーブルで検索キーとして使用されるフィールドがあることを確認してください。インデックスを正しく取得するのは少し難しいですが、テストするには、クエリの前に「EXPLAIN」を追加し、その結果を出力してください。テーブルごとに行が得られます。「WHERE の使用」または「一時テーブルの作成」がある場合、これらはおそらく、それらのテーブルにインデックスを追加して削除する必要があるものです。

于 2013-01-18T13:49:16.653 に答える