无数据库管理动态内容的最佳方法

时间:2011-12-25 13:18:58

标签: php mysql .htaccess

我正在设计一个Web应用程序,它将做三件事:

1)存储一些数据

2)让用户可以查看这些数据

3)不时添加/删除/更改一些数据

看起来很简单,但我想通过避免MySQL和PHP来最小化服务器资源的使用。我的主要目标是为用户提供HTML文件 - posts1.html(posts2.html,posts3.html ...(其中1,2,3是数据页数))。

通常,我会创建posts.php文件,它会将查询发送到数据库,但我的数据每天只会改变三到五次,所以这将是一个巨大的浪费。

相反,我考虑过缓存这些数据,什么会节省大量服务器资源,但在这种情况下会涉及一些PHP代码。

我的另一个想法是创建脚本,在每次数据库更改后创建所有HTML文件,然后用它们替换旧文件。但是,如果有人要求立即替换页面呢?它可能会导致错误,用户可以获取未完成的文件等。

然而,有一个解决方案 - 我可以将创建的HTML文件存储在两个目录(A和B)中,并使用.htaccess执行类似这样的操作(伪代码):

if ( (HOURS)%2 == 0 )
   /postsX.html -> /A/postsX.html
else
   /postsX.html -> /B/postsX.html

它会给我足够的时间来升级所有文件。

我很想听听你对此有什么看法,你会做什么?

2 个答案:

答案 0 :(得分:2)

如果您不想使用完整的MySQL服务器,请使用SQLite。它是PHP的一部分,非常轻量级。然后在适当的地方添加缓存。你的其他方法听起来像浪费时间给我。获得太少的努力太多了。尝试和测试SQLite和缓存。

此外,你不应该担心浪费资源,除非你的资源不足。您的应用程序听起来并不像此时需要缩放。因此,构建最简单的工作方式。

如果必须使用静态页面方法,则将所有这些文件放入符号链接文件夹中。创建一个脚本,将静态页面生成到新文件夹(通过cron或手动触发器),然后将符号链接从旧文件夹更改为新文件夹。通过这种方式,您不必担心人们在生成内容时会访问您的网站。

答案 1 :(得分:0)

您应该将SQLite与ADODB或任何其他受支持的数据库一起使用并实现缓存。请参阅ADODB兼容性列表http://phplens.com/lens/adodb/docs-adodb.htm#drivers。缓存功能非常强大,ADODB非常有名并且有很好的文档记录。