假设我们是一个接收大量流量,Amazon.com规模流量的网站。并且说我们想在主页上显示一个计数器,显示自12月以来的销售总数,并且计数器每隔10秒通过ajax刷新一次。
我们将如何做到这一点?
我们是否有一个显示总销售额的汇总数据库表,每个结账都会+1到柜台,我们会每隔10秒获得一个数字?我们会每隔10秒COUNT()整个'销售'表吗?是否有外部API我可以将数据推送到,然后从它们执行ajax拉动?
希望你能提供帮助,谢谢
答案 0 :(得分:1)
如果您的网站是基于ecomm的,因为您正在进行销售,那么您必须在某处拥有销售跟踪表。当用户访问或刷新您的站点时,您可以简单地使数据库计数成为页面呈现的一部分。
国际海事组织,没有必要考虑这一点,因为大多数访客都不会真正关心。
此外,如果您的流量确实处于亚马逊级别,我建议您针对只读(从属)数据库运行此查询。
答案 1 :(得分:1)
我会在表上放置触发器来管理计数器表。在插入新的销售时,总和表会将新值添加到当天的行中。这也使得每天的销售额在历史上没有实际查询大表。
此外,它允许手动输入除今天之外的其他日期的订单,并且当天获得更新的统计信息。
至于Ajax部分,它只是对该总和表的查询。
答案 2 :(得分:0)
无论你做什么,都不要每10秒重新计算一次。为什么不使用cronjob,每隔10秒进行一次数据计数?它可能需要10秒的当前时间,并且在从属数据库中将差异添加到当前计数?
仍然10秒听起来很奇怪。每分钟,mm?