Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
哪个更快:MySQL/PHP还是直接从静态文件提供服务?_Php_Mysql - Fatal编程技术网

哪个更快:MySQL/PHP还是直接从静态文件提供服务?

哪个更快:MySQL/PHP还是直接从静态文件提供服务?,php,mysql,Php,Mysql,我正在做一个非常大的项目——测验系统(考试)。还有一些问题。首先,哪一个是最好的解决方案: 1) 从MySQL数据库获取所有页面内容并创建php缓存 或 2) 是否在静态文件中保存页面内容 哪个解决方案比另一个更快?假设不涉及缓存,为静态文件提供服务总是比为动态页面提供服务更快但是,无论您运行的是哪种类型的站点,都应该始终进行缓存,可以通过您的Web服务器、框架或诸如或之类的工具进行缓存 最后,您应该做出决定,而不是基于网站的速度,而是基于未来最易维护的系统的选择。即使静态页面比从数据库加载每个

我正在做一个非常大的项目——测验系统(考试)。还有一些问题。首先,哪一个是最好的解决方案:

1) 从MySQL数据库获取所有页面内容并创建php缓存

2) 是否在静态文件中保存页面内容


哪个解决方案比另一个更快?

假设不涉及缓存,为静态文件提供服务总是比为动态页面提供服务更快但是,无论您运行的是哪种类型的站点,都应该始终进行缓存,可以通过您的Web服务器、框架或诸如或之类的工具进行缓存


最后,您应该做出决定,而不是基于网站的速度,而是基于未来最易维护的系统的选择。

即使静态页面比从数据库加载每个页面的速度稍快,对于这样的项目,您必须考虑许多其他因素。仅针对性能进行优化可能很有吸引力,但您不想成为向用户解释为什么他们需要花费10分钟来创建新测验的人,因为“数据库运行效率更高”

你需要关注的是用法。如果你是唯一一个要维护它的人,那么静态页面当然也不错。但是,如果您要将页面交给非技术用户,或者页面需要频繁更改,那么,这就是为什么为您设计带有管理界面的动态页面的原因


如果这是一个通用应用程序,我会“为用户优化”,而不是性能。当然,后者可能会受到轻微的影响,但最终,不要构建您不想维护的东西。快速变化的多用户应用程序-使用管理后端。

这完全取决于您的上下文,如果您的数据更改率高于建议的动态网站,则从数据库加载页面,但如果您希望快速构建,则显然首选静态

基线html

但幸运的是,PHP速度非常快,在编写优化的PHP代码时几乎不会对性能产生任何影响。PHP是一种动态语言,所以越少越好

空气污染指数 此外,如果你打算在一个大的网站上工作,你应该安装的第一件事是。从:

大多数PHP加速器通过缓存PHP编译的字节码来工作 脚本,以避免在上解析和编译源代码的开销 每个请求(部分或全部请求可能永远不会执行)。到 进一步提高性能,缓存的代码存储在共享内存中 内存,并直接从那里执行,最大限度地减少了缓慢的 在运行时进行磁盘读取和内存复制

内存数据库
为了进一步加快任何大型站点的速度,您确实需要使用内存数据库,如(我喜欢这个)或。所有大型网站都使用其中一个。例如,Facebook、Twitter在没有Memcached的情况下无法运行(Redis也可以运行,但他们使用Memcached)。这也将大大加快您的网站速度。

更快?速度差别不大。如果您希望能够轻松地修改测验,或者希望计算结果,请使用PHP/MySQL。当然,页面将从db表中获取问题。我在谈论stie的所有页面,包括登录页等。我认为保存数据库中的所有内容将是最好的选择…这就是为什么MySql用于。。!!安全吗?我是说数据丢失之类的。我可以创建静态(便携式)数据库吗?您可以像丢失静态文件一样轻松地丢失数据库文件。至于数据损坏。。。嗯,这并不常见。如果你不想在繁重的操作过程中为服务器供电,这是不太可能的。
The results follow (all are at 10 concurrent users, averaged over 5 one-minute runs):

ab                       |      rel |      avg |
------------------------ | -------- | -------- |
baseline-html            |   1.2660 |  3581.54 |
baseline-php             |   1.0000 |  2829.11 |

http_load                |      rel |      avg |
------------------------ | -------- | -------- |
baseline-html            |   1.2718 |  4036.24 |
baseline-php             |   1.0000 |  3173.56 |

siege                    |      rel |      avg |
------------------------ | -------- | -------- |
baseline-html            |   1.2139 |  5060.25 |
baseline-php             |   1.0000 |  4168.76 |