加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

哪个是最不密集的 – 在PHP或MySQL中计算出独特的小时?

发布时间:2020-12-13 15:55:50 所属栏目:PHP教程 来源:网络整理
导读:我正试图找出一种方法来跟踪 MySQL中的印象,而不会杀死在高峰时段已经做了相当多的便宜的芯片服务器. 我的想法是简单地记录每小时的展示次数.我需要知道的是获得唯一小时值的最不密集的方法是什么. 按照我在此处找到的建议:https://rollbar.com/blog/post/2
我正试图找出一种方法来跟踪 MySQL中的印象,而不会杀死在高峰时段已经做了相当多的便宜的芯片服务器.

我的想法是简单地记录每小时的展示次数.我需要知道的是获得唯一小时值的最不密集的方法是什么.

按照我在此处找到的建议:https://rollbar.com/blog/post/2013/03/29/using-unique-indexes-for-fun-and-profit我想创建一个跟踪每小时展示次数的表格.

教程建议我做类似的事情:

INSERT INTO hour_impression (hour,impressions)
VALUES (379015,1)
ON DUPLICATE KEY UPDATE impressions = impressions + 1

现在显然小时需要是一个独特的价值,但是产生这个独特价值的最佳方式是什么?

让PHP工作的时间是unix时代以来最有效的方法,或者这是我可以让MySQL为我做的事情吗?

如果我这样做:

INSERT INTO hour_impression (hour,impressions)
VALUES (DATE_FORMAT(FROM_UNIXTIME(NOW()),'%Y%j%H'),1)
ON DUPLICATE KEY UPDATE impressions = impressions + 1

我非常有信心它会起作用但是这会花费我太多的钱,因为要求DB在PHP中使用它然后提供数据.

这会更快还是更少?

$SQL = "INSERT INTO hour_impression (hour,impressions)
VALUES (" . date('YzG') . ",1)
ON DUPLICATE KEY UPDATE impressions = impressions + 1";

还有其他方法我没有考虑过吗?

我只是在试图弄清楚这一点,但实际上我不应该担心这一点差别很小吗?

解决方法

如果你的目标是在用于密钥的RAM上最有效,那么使用无符号整数作为日期将是最好的.
现在拥有包含小时和秒的时间戳将不是一个好主意,特别是如果您的流量增长.

strtotime(date('Y-m-d H:00:00'))

每小时您将拥有24个独特的时间值.如果您选择’Y-m-d H:i:s’格式,您每天可能会获得80k的独特价值.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读