147

我有一个查询,其中涉及根据创建时间按排序顺序从表中获取用户列表。我从 chrome 开发人员工具中得到了以下时序图。

从 chrome 计时

您可以看到 TTFB(到第一个字节的时间)太高了。
我不确定是否是因为 SQL 排序。如果这是原因,那么我该如何减少这个时间?
还是因为TTFB。我看到博客说 TTFB 应该更少(< 1 秒)。但对我来说,它显示 >1 秒。是因为我的查询还是其他原因?
我不确定如何减少这个时间。
我正在使用角度。我应该使用角度来对表进行排序而不是 SQL 排序吗?(许多帖子说这不应该是问题)
我想知道的是如何减少 TTFB。伙计们!我实际上对此很陌生。这是我的团队成员交给我的任务。我不确定如何减少 TTFB 时间。我看了很多帖子,但无法正确理解。什么是TTFB。是服务器占用的时间吗?

4

5 回答 5

146

TTFB 不是响应正文的第一个字节的时间(即有用的数据,例如:json、xml 等),而是从服务器接收到的响应的第一个字节的时间。这个字节是响应头的开始。

例如,如果服务器在执行繁重的工作(如繁重的 SQL)之前发送标头,您将获得非常低的 TTFB,但这不是“真实的”。

就您而言,TTFB 代表您在服务器上处理数据所花费的时间。

要减少 TTFB,您需要更快地完成服务器端工作。

于 2015-05-20T18:30:46.803 回答
19

我遇到了同样的问题。我的项目在本地服务器上运行。我检查了我的 php 代码。

$db = mysqli_connect('localhost', 'root', 'root', 'smart');

localhost用来连接到我的本地数据库。这可能是您描述的问题的原因。您可以修改您的HOSTS文件。添加行

127.0.0.1 localhost.

于 2016-04-06T01:39:49.817 回答
16

TTFB 是在幕后发生的事情。您的浏览器对幕后发生的事情一无所知。

您需要查看正在运行的查询以及网站如何连接到服务器。

本文可能有助于理解 TTFB,但否则您需要更深入地研究您的应用程序。

于 2015-03-04T11:10:06.560 回答
5

如果您使用的是 PHP,请尝试使用<?php flush(); ?>after</head>和 before</body>或您想要快速输出的任何部分(如标题或内容)。它将输出实际代码而无需等待 php 结束。不要一直使用这个功能,否则速度提升不会很明显。

更多信息

于 2015-08-02T21:49:51.490 回答
4

我建议你阅读这篇文章,更多地关注如何优化对用户请求的整体响应(页面、搜索结果等)

一个很好的论据是他们给出的关于使用 gzip 压缩页面的示例。即使不压缩时 ttfb 速度更快,但用户的整体体验最差,因为下载未压缩的内容需要更长的时间。

于 2015-07-06T09:22:29.147 回答