1

MySQL データベースからアドレスのリストを要求する単純な PHP ページを取得しました。データベース テーブルには 1257 のエントリがあります。また、他のサイトを閲覧するための動的に読み込まれるサイド メニューも含まれています。合わせて 5 つの MySQL リクエストを受け取りました

  1. アドレス
  2. ページネーション
  3. ユーザーが閲覧権限を持っていることを確認してください
  4. サイド メニューのすべてのグループを取得する
  5. サイド メニューのすべてのサブ エントリを取得する

サイトの読み込みには約 5 秒かかります。

サイトの読み込み時間の改善について Google で検索したところ、ページ速度を備えた Google 開発者ツールが、デフレートの有効化、バナー サイズの変更などのすべての改善を行っていることがわかりましたが、それでも読み込み時間はほぼ同じです。これが一般的かどうか、または読み込み時間を改善するためにできることがあるかどうかを知りたい.

編集:列のインデックスも作成し、MySQL キャッシュを有効にしました。メニューグループテーブルからのサブエントリテーブルでも外部キーを使用します

EDIT2:問題の解決策は、ローカルホストを使用してデータベースに接続することでしたが、Windows 7を使用しているため、ipv6経由で接続しようとしたため、すべてのローカルホストを127.0.0.1に変更し、ページをロードするのに約126ミリ秒しかかかりません

4

2 に答える 2

1

まず、ブラウザのコンソールでページの読み込みに時間がかかっている原因を突き止めます。遅延の原因がサーバー側にある場合、たとえば html ファイル自体が長時間生成されている場合は、次の点を確認してください。

低速の mysql クエリをログに記録して、何もないことを確認してください。 http://dev.mysql.com/doc/refman/5.0/en/slow-query-log.html

コストのかかる計算が実際に行われている場合 (あなたのケースではありそうにありません)、それをキャッシュしてみてください。

APC や mysql の最適化 (クエリ キャッシュなど) などの PHP コード アクセラレータの利点を忘れないでください。

...物事を高速化する他の多くの方法がありますが、アプリ自体をプロファイリングして、何が起こっているかを確認する必要があります。

于 2013-02-27T10:44:08.377 に答える
0

where条件を使用して列のインデックスを作成しましたか。そうでない場合は、列にインデックスを付けて確認してください

于 2013-02-27T10:31:19.650 に答える