我有一个查询,涉及根据创建时间从排序顺序获取表中的用户列表。我从chrome开发人员工具中获得了以下时序图。
您可以看到TTFB(第一个字节的时间)太高。
我不确定是否是因为SQL排序。如果这就是原因那么我该如何减少这个时间呢?
或者是因为TTFB。我看到博客说TTFB应该更少(<1秒)。但对我来说它显示> 1秒。是因为我的查询还是别的什么?
我不知道如何减少这段时间。
我正在使用棱角分明。我应该使用angular来排序表而不是SQL排序吗? (很多帖子都说不应该是问题)
我想知道的是如何减少TTFB。伙计们!我其实是新手。这是我的团队成员给我的任务。我不确定如何减少TTFB时间。我看到很多帖子,但无法正确理解。什么是TTFB。这是服务器花的时间吗?
答案 0 :(得分:101)
TTFB不是响应主体的第一个字节的时间(即,有用的数据,例如:json,xml等),而是从服务器接收的响应的第一个字节的时间。该字节是响应头的开始。
例如,如果服务器在执行繁重的工作之前发送标头(如繁重的SQL),您将得到一个非常低的TTFB,但它不是“真实的”。
在您的情况下,TTFB表示您在服务器上处理数据的时间。
要减少TTFB,您需要更快地完成服务器端工作。
答案 1 :(得分:12)
我遇到了同样的问题。我的项目在本地服务器上运行。我检查了我的PHP代码。
$ db = mysqli_connect(&#39; localhost&#39;,&#39; root&#39;,&#39; root&#39;,&#39; smart&#39;);
我使用localhost
连接到我的本地数据库。这可能是您所描述的问题的原因。您可以修改HOSTS
文件。添加行
127.0.0.1 localhost
。
答案 2 :(得分:9)
答案 3 :(得分:3)
我建议您阅读此article,并更多地关注如何优化对用户请求的总体响应(页面,搜索结果等)。
这方面的一个很好的论据是他们给出了使用gzip压缩页面的例子。即使ttfb在不压缩时速度更快,但用户的整体体验最差,因为下载未压缩的内容需要更长的时间。
答案 4 :(得分:2)
如果您使用的是PHP,请尝试在<?php flush(); ?>
之后和</head>
之前使用</body>
或在您想要快速输出的任何部分(例如标题或内容)。它将输出实际代码而无需等待php结束。不要一直使用此功能,否则速度增加不会显着。