【问题标题】:Optimize loading time of php page优化php页面的加载时间
【发布时间】:2013-02-27 10:21:36
【问题描述】:

我有一个简单的 PHP 页面请求来自 MySQL 数据库的地址列表。数据库表有 1257 个条目。我还包括一个动态加载的侧边菜单以浏览其他站点。 我一共收到了 5 个 MySQL 请求

  1. 地址
  2. 分页
  3. 检查用户是否有权浏览
  4. 获取侧边菜单的所有组
  5. 获取侧边菜单的所有子条目

网站加载大约需要 5 秒。

我在 Google 上搜索了网站加载时间的改进,发现具有页面速度的 Google Developer 工具完成了它告诉我的所有改进,例如启用放气、更改横幅大小等,但加载时间仍然几乎相同。我想知道这是否常见,或者我可以做些什么来缩短加载时间。

编辑:我还索引了这些列并启用了 MySQL 缓存。我还在菜单组表中的子条目表中使用外键

EDIT2: 我找到了解决方案,问题是我使用 localhost 连接到我的数据库,但由于我使用 Windows 7,它尝试通过 ipv6 连接现在我将所有 localhost 更改为 127.0.0.1 和加载我的页面只需要大约 126 毫秒

【问题讨论】:

  • 我认为 1257 个非常小的查询只需要几毫秒。可能是您正在加载图像并从其他可能需要时间的站点引用资源。或者您可能正在使用糟糕的服务器
  • 我在本地机器上使用了 xampp,它有 8gb 内存、SSD 和 3GHz 四核 CPU。因此,由于服务器基本上是本地主机,因此如果我在 phpmyadmin 中执行查询,每个查询大约需要 0.02 秒,这正是我如此困惑的原因。
  • 我建议你在脚本中记录下各个点的时间(使用 microtime(true) 获取时间),然后将它们放在脚本末尾尝试找到哪个部分的代码需要时间。您可以在这些区域进行更多时间检查,以使其更加明确。还可以在 phpmyadmin 中单独尝试您的 SQL 查询,或者使用 EXPLAIN 进行等效操作,并检查索引是否真的被使用了。
  • 使用 microtime(true) 我发现我只为这一行损失了 1 秒 mysql_query("SET NAMES 'utf8'");还有1秒连接数据库正常吗?
  • 查询最多也需要大约 0.04 秒

标签: php html mysql ajax


【解决方案1】:

首先,使用浏览器控制台找出页面加载时间过长的原因。如果延迟的原因是在服务器端,例如html文件本身生成时间长,请检查以下内容:

尝试记录缓慢的 mysql 查询并确保没有。 http://dev.mysql.com/doc/refman/5.0/en/slow-query-log.html

如果您确实有一些昂贵的计算正在进行(在您的情况下不太可能),请尝试缓存它。

不要忘记 PHP 代码加速器的好处,例如 APC 和 mysql 优化(查询缓存等)。

...许多其他加快速度的方法,但必须分析应用程序本身并查看发生了什么。

【讨论】:

    【解决方案2】:

    您是否为使用 where 条件的列建立了索引。如果不是,请索引列并检查它

    【讨论】:

    • sry 完全忘了提到是的,列被索引了
    • 1)如果页面有更多的图像制作精灵 2)添加页面底部的所有 js 文件 3)检查 apache keepalive 是否打开
    • 只有1张图片(横幅),保持活跃,js文件在底部
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-26
    • 1970-01-01
    • 1970-01-01
    • 2020-01-09
    • 1970-01-01
    相关资源
    最近更新 更多