0

我想知道如果您将所有 html 放在纯文本 html 文件或 PHP 文件中,它将从数据库中加载您的 html,是否会更快。

万一客户会询问将立即发送而无需数据库交互的页面。如果两个 PHP 必须从数据库加载数据,然后将它们转换为对象,然后将其填充到 html 文件中,然后将其发送回主机。

看起来第一个选项是最快的选项。提到在这两种情况下,动态 HTML 都将由 PHP 生成,它也是通过数据库加载的。

我正在制作一个可以测试它的测试环境。我将自己对此进行测试,并在获得结果后上传结果。

据我所知,Joomla 从数据库加载整个 HTML 文档。现在,当我想自己制作 CMS 时,我希望我的网页能够快速加载。在我看来,Joomla 很烂,所以我的问题仍然存在:

哪个是更快的纯 html 或数据库中存储的 html?

我看到我的问题引起了很多情绪。我会为我的问题增加一些价值。

  1. 我自己在测试吗:“是的,当然,我不是一个懒惰的人,不准备自己寻求答案”
  2. 那你为什么要问:“我对你的意见感兴趣。认为我可以自己找到所有答案是愚蠢的。而且有很多有经验的程序员知道这一点,所以为什么不问”
  3. 在所有情况下,HTML 都由 CMS 管理。这个想法是 cms 必须以真正混合的方式快速。所以不管你有一个小网站还是一个大网站,如果你的网站有实际的动态内容或内容在几年内都是一样的。
  4. 我看到人们在评论中说没有性能问题,或者它太小了,不算数。我的问题是:“真的没关系吗?纯文本文件还是生成表单数据库”
  5. 缓存?好的,我将研究一下缓存。

我做了一些测试,这就是结果。对我来说,它们很奇怪,我无法理解。我使用 google chrome 来存储 geensteil、tweakers.nl 和 stackoverflow(此页面)、google.com 的网页。然后我使用 chrome 检查工具检查页面并使用网络按钮查看我正在加载的内容。然后我复制 HTML 并将其放入 mysql myisam 并使用 PHP 加载它。我在一个excel文件中写下了结果。

这些是我的测试结果:

这里

4

2 回答 2

2

简要地:

数据库- 在服务器和数据库之间进行握手以及编写脚本需要时间。通过脚本连接、查询、返回结果、将结果渲染到页面。

然而

平面文件- 您直接访问该文件,就好像它已经嵌入到页面中一样,唯一的时间就是执行代码。

但是,除非您使用的是非常缓慢且可能是共享的服务器,否则您不应该真正注意到差异。在我看来,Joomla 是一个要求很高的 CMS,如果您只想放置几页,它并不是那么好。如果您追求简单的东西,请尝试阅读一些教程并自己编写一个。这应该让你开始

  1. http://www.1stwebdesigner.com/tutorials/creating-your-own-cms-1/
  2. http://css-tricks.com/php-for-beginners-building-your-first-simple-cms/
于 2012-11-19T09:45:15.850 回答
1

严格考虑两个相同 HTML 文件(一个来自文件系统,另一个来自数据库)的页面加载时间,静态文件总是最快的。

例如,您可以从 Nginx、Varnish 提供它,它们通常比 apache 更快。你不需要像 PHP 那样加载额外的库,不需要连接到 MySQL 的开销,也不需要等待查询时间。

*注意:带有 Apache 和 mod_php 的 PHP 开销很大。使用与 MySQL 的持久连接或连接池,php-fpm 代替 mod_php 和 APC 可以提供很大帮助,但它与提供静态文件的速度仍然相去甚远。*

如果您想要真正快速的页面加载时间。试试 nginx + memcache ( http://wiki.nginx.org/HttpMemcachedModule )。Nginx 有能力直接从 memcache 中获取数据。将您的整个 html 放在 memcache 中,其中键是 url。这是一个示例 nginx 设置:

location / {
    if ($request_method = GET)
    {
                    set $memcached_key some_prefix:$request_uri;
                    memcached_pass  localhost:11211;
                    error_page 404 =200 @fallback;
    }

    default_type text/html;
    try_files $uri $uri/ /index.php$uri?$args;
}

location @fallback {
    try_files $uri $uri/ /index.php$uri?$args;
}
于 2012-11-19T10:23:50.330 回答