我正在使用 mysql 检查用户是否登录,但我收到了来自托管公司的电子邮件,说我已经超出了 mysql 查询限制,将 mysql 查询限制升级到每小时 150000 的成本是 240 美元/年.
现在,我需要另一种方法来检查用户是否登录,例如将用户的时间戳写入文件,但我不知道最好的方法......而且我什至不知道哪些标签我把这个帖子...
那么,你能帮我解决这个问题吗?
使用$_SESSION
. 它的效率提高了 1000 倍,专为此目的而设计。在这里阅读
升级(或从成本角度降级)到根服务器和/或使用更好的机制来存储会话。即memcache、couchdb 或mongodb。
在任何情况下,如果您离开 PHP 的会话处理程序,您都必须手动处理信号量。
您的主机有 mysql 查询限制,这很奇怪,但回到您的问题;
我猜你不只是想查看用户是否在本地登录,而是让另一个帐户看到用户已登录,这需要数据库调用,而不是 $_SESSION (维护以每个用户为基础)。
但是,如果我们假设您希望在数据库之外执行此操作,您可以在用户登录或注销时生成最终的 HTML 结果。在数据库中保留一个包含用户状态的表,但是每当用户登录或退出时,对该表进行一次查询,并生成例如您的登录用户的 HTML 列表。将输出保存到文件中,当您需要呈现页面时,包含该文件而不是进行数据库调用。
它并没有完全删除 MySQL 数据库,但它相当可靠,并且应该会显着减少数据库查询的数量。