古いアプリケーションの1つをはるかに優れた方法で再コーディングしようとしています。それほど大きくはありませんが、ロード中に約80のクエリが実行されます。ただし、2秒でブラウザに読み込まれます。いくつかのクエリを最適化できます。それで問題ありません。私の質問は、これまたはそのすべてがうまくいくことを心配する必要があるかどうかです。ページをロードするための平均的なクエリリクエストはどのくらいですか?標準的な制限を知りたいです。
3 に答える
クエリには触れないことから始めますが、これらにかかる時間を測定することから始めます
- データベース接続/データベースクエリ
- バックエンド処理(ビジネス)ロジック
- ネットワークの遅れ
- HTMLレンダリング+任意のJavaScript実行
これらのいずれかが原因である可能性があり、または他の何かである可能性もあります。しかし、おそらくそれらの1つです。何が時間がかかっているかを正確に知っているときは、状況を修正するときに正しい方向を示す必要があります。
数値をバックアップするために実際のパフォーマンステストを実行しても、問題はありません...
クエリのページごとの制限はありません。タイムアウト制限はありますが、明らかに制限の範囲内です。
n個の結果をループしている場合、つまり。ネストされたデータモデルでは、それはまったく問題ありません。そうでない場合は、理由があると確信しています。2秒はページの読み込みには少し長いですが、もちろんあなたのページについては何も知りません。
ページ上の80のクエリには、実際には何も問題はありません。自分自身に質問したいのですが、なぜですか。
長いクエリを見つけるための簡単なトリック。実際のクエリにかかる時間を確認してください。
$start = microtime(1);
mysql_query('SELECT blah blah');
echo (microtime(1) - $start);
ページごとの「標準クエリ数」はありません。たとえば、「結合」を使用すると、何百もの個別のクエリを削除できる可能性があります。
ただし、ロードする「2秒未満」については、1秒以上であることを意味します。パブリックユーザー(たとえばイントラネットではない)の場合は、控えめなコンピューターでも0.5秒未満に短縮する必要があります。これを実現するには、ページ全体の出力バッファリングがオンになっていることを確認します(php.iniで設定します)。これにより、ページの読み込み速度が大幅に向上します。出力バッファリングと圧縮の詳細については、こちらの投稿を参照してください:HTMLドキュメントを早期にフラッシュする-ini_set('zlib.output_compression'、'ON')?