如何减少等待(ttfb)时间

问题描述 投票:0回答:6

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

timing from the chrome

您可以看到 TTFB(第一个字节的时间)太高。
不知道是不是SQL排序的原因。如果这是原因,那么我怎样才能减少这个时间呢?
或者是因为 TTFB。我看到博客说 TTFB 应该少一些(< 1sec). But for me it shows >1秒。是因为我的查询还是其他原因?
我不知道如何减少这个时间。
我正在使用角度。我应该使用 Angular 对表进行排序而不是 SQL 排序吗? (很多帖子说这不应该是问题)
我想知道的是如何减少 TTFB。伙计们!我实际上对此很陌生。这是我的团队成员交给我的任务。我不知道如何减少 TTFB 时间。看了很多帖子,但没能正确理解。什么是 TTFB.是服务器占用的时间吗?

developer-tools timing-diagram
6个回答
154
投票

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

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

在您的情况下,TTFB 代表您在服务器上处理数据所花费的时间。

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


20
投票

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

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

我使用

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

127.0.0.1       localhost
.


17
投票

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

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

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


5
投票

如果您使用 PHP,请尝试在

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

更多信息


4
投票

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

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


0
投票

TTFB 是当今真正的 Web 性能杀手。不是未优化的图像或大型脚本文件。

高 TTFB 通常与未通过 CDN 提供 HTML 文档有关。不确定在这种情况下您是否使用 CDN,但大多数网站仅将 CDN 用于图像、脚本和 css 文件。

如果您在速度较慢的主机上使用 WordPress,并且页面未缓存,则您会获得超高的首字节时间。

如果您使用 Cloudflare 进行缓存,请添加缓存规则并选择

Cache everything
(https://developers.cloudflare.com/cache/how-to/cache-rules/examples/cache-everything/)

如果您想从全球 40 个地点快速检查您的 TTFB,我在这里构建了一个免费工具(无需注册或发送电子邮件):https://pagevitals.com/free-tools/ttfb-tester/

如果您使用此功能,您将能够快速查看高 TTFB 是本地问题还是真正的问题。

© www.soinside.com 2019 - 2024. All rights reserved.