【问题标题】:Php efficiency question --> Database call vs. File Write vs. Calling C++ executablePHP 效率问题 --> 数据库调用 vs. 文件写入 vs. 调用 C++ 可执行文件
【发布时间】:2010-05-20 15:45:23
【问题描述】:

我希望实现的是 - 记录每次访问我网站每个页面的所有信息(如 IP 地址、浏览器、引用页面等)。现在这很容易做到。

我感兴趣的是这样做,以便在 php 脚本中产生最小的开销(运行时)。提高效率的最佳方法是什么:

1) 将所有信息记录到数据库表中

2) 写入文件(直接来自 php)

3) 调用 C++ 可执行文件,它将将此信息并行写入文件 [因此脚本可以继续执行而无需等待文件写入发生......这是否可能]

我可能会尝试不必要地/过早地进行优化,但仍然 - 对此的任何想法/想法将不胜感激。 (如果我说每分钟 100 次访问,我认为文件写入/记录的效率确实是一个问题......)

感谢和问候,

日本

【问题讨论】:

    标签: php database file performance


    【解决方案1】:

    你有这个 C++ 可执行文件。称为网络服务器。它已经记录了对您网站的每一次点击。

    【讨论】:

    • 此外,大多数网络服务器都可以配置为记录您提到的所有内容(以及更多内容)...
    • 嗨,我的网站托管在共享托管环境中(如果有帮助的话,GoDaddy)。所以我想我将无法访问网络服务器日志?他们有一种叫做“访问日志”的东西。有两个问题:i)它似乎没有记录每次访问ii)我没有看到任何配置它的方法。也许我错过了一些东西。有什么建议么?谢谢JP
    • @JP19 伙计,不要认为这是冒犯,但这是我见过的最有趣的评论。请问你爸爸能不能承受每分钟10次的访问?如果不是,您为什么要担心这些与您的共享托管能力相去甚远的事情?不知道 godaddy,但访问日志打算记录每次点击。这是唯一的访问日志目的。我的网站上有大量的访问日志分析器,因为它会记录所有内容,而基于 PHP 的记录器只会记录 php 文件的访问。但是每分钟 100 次共享...哦,我的...
    • 顺便说一句,每分钟 100 次只是每秒 6 次。找到特别的东西不是负担。您提到的任何机制都可以轻松处理。我一开始每秒 100 次。
    • 我无意冒犯,但是 - 在某些情况下,我网站上的页面可能会在一小时内吸引大量高峰流量,而平均每月流量却非常低。我只是在计划最坏的情况。 (无论如何,过早优化是我想要克服的弱点:)
    【解决方案2】:
    1. 功能强大,但实施起来可能很麻烦
    2. 注意多线程。如果两个用户同时调用您的 php 脚本并且文件已经打开以供写入,会发生什么情况。
    3. 与 2 相同,但异常会发生在 C++ 可执行文件中。

    我建议您使用logging framework,例如log4php。

    【讨论】:

    • 他可以根据IP写入不同的日志文件吗?用户1:193.123.123.1 用户2:194.123.123.1,写入2个文件file_193.txt,file_194.txt
    • 如果所有用户都在同一个代理后面怎么办?
    • 是的,同时多次写入是我的担忧。我将检查 log4php 以查看它是否解决了我的问题(效率)。谢谢JP
    猜你喜欢
    • 2023-03-24
    • 2016-04-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-20
    • 2017-09-15
    • 1970-01-01
    • 2011-01-07
    • 2021-05-25
    相关资源
    最近更新 更多