web-dev-qa-db-ja.com

待機(ttfb)時間を減らすにはどうすればよいですか

作成された時刻に基づいてソートされた順序でテーブルからユーザーのリストを取得することを含むクエリがあります。私はクロム開発者ツールから以下のタイミング図を得ました。

timing from the chrome

TTFB(最初のバイトまでの時間)が高すぎることがわかります。
それがSQLの種類によるものかどうかはわかりません。それが理由であるならば、どうすれば私はこの時間を減らすことができますか?
それともTTFBが原因です。私はTTFBがもっと小さい(1秒未満)べきであると言うブログを見ました。しかし私にとってそれは> 1秒を示しています。それは私の質問によるものか、それとも他の何かによるものか。
どうすればこの時間を短縮できるのかわかりません。
角度を使っています。 SQLのソートではなく、Angularを使用してテーブルをソートする必要がありますか。 (多くの記事がそれが問題になるべきではないと言います)
私が知りたいのは、どうすればTTFBを減らすことができるかということです。みんな!私は実際にこれに慣れていません。それは私のチームメンバーから与えられた仕事です。 TTFB時間をどのように短縮できるかわかりません。たくさんの投稿を見ましたが、正しく理解できませんでした。 TTFBとは何ですか。サーバーの時間ですか?

93
govindpatel

TTFBは、応答の本体の最初のバイトまでの時間(すなわち、json、xmlなどの有用なデータ)ではなく、サーバーから受信した応答の最初のバイトまでの時間である。このバイトは応答ヘッダーの始まりです。

たとえば、サーバーが(重いSQLのように)ハードワークを実行する前にヘッダーを送信した場合、TTFBは非常に低くなりますが、それは「真実」ではありません。

あなたの場合、TTFBはあなたがサーバー上でデータを処理するのに費やす時間を表します。

TTFBを減らすには、サーバーサイドの作業を早くする必要があります。

104

私は同じ問題に出会った。私のプロジェクトはローカルサーバー上で実行されています。私は自分のPHPコードをチェックしました。

$ db = mysqli_connect( 'localhost'、 'ルート'、 'ルート'、 'スマート');

ローカルデータベースに接続するにはlocalhostを使います。それがあなたが説明している問題の原因かもしれません。 HOSTSファイルを修正することができます。行を追加

127.0.0.1 localhost

13
CH Chow

TTFBは舞台裏で起こるものです。あなたのブラウザは舞台裏で何が起こるかについて何も知りません。

どのようなクエリが実行されているのか、そしてWebサイトがどのようにサーバーに接続しているのかを調べる必要があります。

This 記事はTTFBを理解するのに役立つかもしれませんが、そうでなければあなたのアプリケーションをもっと深く掘り下げる必要があります。

10
Pureferret

私はあなたがこれを読むことをお勧めします 記事 そしてユーザーの要求(ページ、検索結果など)への全体的な応答を最適化する方法にもっと集中する

これに対する良い議論は、彼らがgzipを使ってページを圧縮することについて彼らが与える例です。圧縮しないとttfbは速くなりますが、圧縮されていないコンテンツのダウンロードには時間がかかるため、ユーザーの全体的な操作性は最悪です。

3
Mike

PHPを使用している場合は、</head>の後で</body>の前、またはすばやく出力したいセクション(ヘッダーやコンテンツなど)の前に<?php flush(); ?>を使用してみてください。 phpが終了するのを待たずに実際のコードを出力します。この機能を常時使用しないでください。さもないと、速度が上がっても気になりません。

詳細

2
Matías P.