php 时间段 mysql 存储_MySQL PHP – 每次用户登录时存储时间戳的最佳方式

我需要跟踪用户的所有登录信息,以便每次登录时我都有他们这样做的时间戳.这样做的最有效和最好的方法是什么?

我总是通过在users表中有一个文本字段来存储它,该文本字段存储由字符分隔的unix时间戳.每次登录时,都会将另一个时间戳添加到结尾.

1243453458|1255476933|1263453743|1318495068|

这是一个不好的方式吗?每当用户登录时,我都会想到一个单独的登录表,每次登录都是一种过度杀伤,并且在检索此信息时会对数据库造成更大的压力.

请记住,我在PHP中处理这些时间戳,并使用数据中的jQuery创建图形.

解决方法:

是的,这是一种存储任何东西的可怕方式,包括时间戳,还有更好的方法可以做到这一点.即使是最简单的表也会给你带来更好的性能:

user_id (int) | last_login (timestamp)

>您将时间戳存储为字符串.这对于存储,检索和更新来说是完全没有效率的;加上你最终会遇到一个列限制.

>出于这种目的,存在大量优化的数据类型 – MySQL服务器开发人员倾向于知道有关存储数据的一两件事.

>对于具有固定大小行的这样一个小表的数据库命中率可以忽略不计 – 而不是具有可变大小字符串的表,这需要在应用程序中进一步处理.

换句话说,通过尝试优化应用程序(基于不正确的假设 – “另一个表格太过紧张”),你已经对它进行了悲观化,提出了一个全面的低效解决方案.不要过分复杂化;如果有疑问,请勾选两个选项并亲自看看.

标签:php,mysql

来源: https://codeday.me/bug/20190723/1513603.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值