1

我正在使用 mysql 检查用户是否登录,但我收到了来自托管公司的电子邮件,说我已经超出了 mysql 查询限制,将 mysql 查询限制升级到每小时 150000 的成本是 240 美元/年.

现在,我需要另一种方法来检查用户是否登录,例如将用户的时间戳写入文件,但我不知道最好的方法......而且我什至不知道哪些标签我把这个帖子...

那么,你能帮我解决这个问题吗?

4

3 回答 3

5

使用$_SESSION. 它的效率提高了 1000 倍,专为此目的而设计。在这里阅读

于 2012-10-26T17:09:00.767 回答
1

升级(或从成本角度降级)到根服务器和/或使用更好的机制来存储会话。即memcache、couchdb 或mongodb。

在任何情况下,如果您离开 PHP 的会话处理程序,您都必须手动处理信号量。

于 2012-10-26T17:10:52.647 回答
0

您的主机有 mysql 查询限制,这很奇怪,但回到您的问题;

我猜你不只是想查看用户是否在本地登录,而是让另一个帐户看到用户已登录,这需要数据库调用,而不是 $_SESSION (维护以每个用户为基础)。

但是,如果我们假设您希望在数据库之外执行此操作,您可以在用户登录或注销时生成最终的 HTML 结果。在数据库中保留一个包含用户状态的表,但是每当用户登录或退出时,对该表进行一次查询,并生成例如您的登录用户的 HTML 列表。将输出保存到文件中,当您需要呈现页面时,包含该文件而不是进行数据库调用。

它并没有完全删除 MySQL 数据库,但它相当可靠,并且应该会显着减少数据库查询的数量。

于 2012-10-26T17:15:45.360 回答