gpt4 book ai didi

php - 哪个最不密集 - 在 PHP 或 MySQL 中计算唯一时间?

转载 作者:可可西里 更新时间:2023-11-01 07:39:22 25 4
gpt4 key购买 nike

我正在尝试找出一种方法来跟踪 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

显然 hour 需要是一个唯一值,但是生成该唯一值的最佳方式是什么?

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

我非常有信心它会起作用,但是就要求数据库所做的工作量而言,与在 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 个唯一值。

关于php - 哪个最不密集 - 在 PHP 或 MySQL 中计算唯一时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30172061/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com