我正在开发一个非常简单的小型访问者计数器,我想知道每次访问者进入网站页面时,是否在服务器资源上打开MySQL数据库都不会太重。
有些人将访问存储在纯文本文件中,也许我可以将数字存储在会话中(在每个页面都有一个键的数组中),当会话关闭时,我将其复制到数据库中一次?
最轻的方法是什么?
答案 0 :(得分:2)
在大多数强大的Web应用程序中,无论如何都会因为某种原因在每个页面加载时查询数据库,因此,除非您有严重的资源限制,否则您不会通过计数器查询破坏银行或节省大量的加载时间躲开它。
一个考虑因素可能是增加数据库更新的值,以便可以查询一个更新以进行多次使用。在您的情况下,您可以拥有一个视图日志,例如:
INSERT INTO view_log
VALUES (user_name, ip_address, visit_timestamp, page_name)
可用于报告特定网页的受欢迎程度,跟踪用户活动,调试等。点击次数只会是:
SELECT COUNT(1) FROM view_log
答案 1 :(得分:1)
如果您的网站已有数据库,请使用它!
连接最有可能在打开之间汇集,并且只需要很少的努力。
如果您写入文件,该站点需要对其进行写访问,并且您在多个用户连接期间存在并发问题。
如果服务器突然关闭,仅在会话关闭时保持持久性也是一种风险..
答案 2 :(得分:0)
大多数网站都会打开MySQL连接,所以如果你这样做,你就不必再打开它了两次。写入磁盘也需要资源(尽管可能更少),另外如果在繁忙的网站上有一个基于文件的计数器,你可能会非常快地耗尽磁盘的一小部分。这些文件写入必须相互等待,而MySQL处理多个请求更灵活。
无论如何,我会编写一个简单的计数器界面来抽象它,这样你就可以轻松切换到文件,MySQL或任何其他存储,而无需过多地修改你的网站。