静态网页vs MySql生成

时间:2011-05-18 11:55:06

标签: php mysql webpage

我有一个网站,让每个用户创建一个网页(宣传他的产品)。创建页面后,它将永远不会再次修改。

现在,我的问题是:将页面内容(只有少数部分是可编辑的)保存到MySql数据库并在每次页面加入时使用查询生成它以创建静态更好包含所有信息的网页并将其存储到服务器上?

如果我将每个页面存储在磁盘上,我可能会达到200.000个文件。

如果我将每个页面存储在MySQL数据库中,我每次请求页面时都要进行查询,对于200.000个条目和5-6个查询/秒,我认为网站会很慢......

那么更好的是什么?

7 个答案:

答案 0 :(得分:3)

如果正确创建表(规范化和索引),MySQL将能够处理负载。但是如果页面内容在创建后没有改变,那么静态缓存页面会更好。您可以将文件组织到存储桶(文件夹)中,以便一个文件夹中没有太多文件。

请记住仅缓存内容区域而不缓存模板。除非每个用户完全控制他/她的页面显示方式。

答案 1 :(得分:3)

Apache进程可写的200.000个文件不是一个好主意。

我建议使用数据库。 数据库导入/导出更容易,而不是告知维护成本之间的差异。

数据库正在使用缓存,如果没有更改,它们将提取最后一个结果,而不再运行查询。这不符合,感谢JohnP。

答案 2 :(得分:1)

如果你想稍后重新设计你的网页,你必须使用MySQL来存储页面,因为你不能真正改变它们(除非你深入研究regexp)。 关于时间问题 - 如果你正确设置索引,这不是问题。

答案 3 :(得分:0)

如果数据小到中等,则更喜欢静态硬编码,即。将数据放在HTML中,但如果它是巨大的,计算的或动态的并且改变你就别无选择,只能使用与数据库的连接

答案 4 :(得分:0)

我相信具有某些属性(长exp。时间)的正确缓存技术将优于静态页面或每次从mysql检索所有内容。

答案 5 :(得分:0)

如果你有大量的流量,静态内容通常是一件好事,但是对于数据库而言,每秒5-6次查询并不难,所以使用当前的负载并不重要。

您可以通过文件名将静态文件传播到不同的目录,并在Web服务器中设置重写规则(Apache上的mod_rewrite,与Nginx上的regexp匹配的基本位置以及其他Web服务器上的类似)。这样你甚至不必调用PHP解释器。

答案 6 :(得分:0)

数据库和正确的缓存。 200.000页,什么? 5KB?那是1 GB。易于保存在RAM中。除了每秒5/6查询在数据库上很容易。首先编程,然后编程。

// insert quip about premature optimisation