哪个是最不密集的 – 在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的独特价值. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |