- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要保存一些关于正在观看的视频的统计数据,其中之一是视频的哪些部分被观看最多。我想出的设计是将视频分成 256 个间隔,并为每个间隔保留 float 。我以用户连续观看的间隔数接收数据。问题是如何存储它们。我看到了两种解决方案。
让我们有一个这样的数据库表:
CREATE TABLE `video_heatmap` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`video_id` int(11) NOT NULL,
`position` tinyint(3) unsigned NOT NULL,
`views` float NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `idx_lookup` (`video_id`,`position`)
) ENGINE=MyISAM
然后,每当我们必须处理多个 View 时,请确保存在相应的数据库行并将适当的值添加到 views
列。我发现如果首先处理行的存在(SELECT COUNT(*)
给定视频的行,如果缺少行则INSERT IGNORE
,速度会快很多), 然后像这样使用一些更新查询:
UPDATE video_heatmap
SET views = views + ?
WHERE video_id = ? AND position >= ? AND position < ?
然而,这似乎有点臃肿。我想到的另一个解决方案是
表格看起来(有点)像这样:
CREATE TABLE video (
id INT NOT NULL AUTO_INCREMENT,
heatmap BINARY (4 * 256) NOT NULL,
...
) ENGINE=InnoDB
然后,每次需要存储 View 时,都会在具有一致快照的事务中完成,顺序如下:
heatmap
,一个以二进制形式存储的 float 组,被转换成更易于处理的形式(在 PHP 中)。UPDATE
查询更改行。到目前为止,优点可以总结如下:
WITH CONSISTENT SNAPSHOT
。我不知道这些的性能惩罚是什么。那么,我该怎么办?如果不是我们系统的其余部分始终使用 MyISAM,我会采用第二种方法,但目前我倾向于第一种方法。但也许有一些理由支持一种或另一种方法?
最佳答案
第二种方法乍一看很诱人,但它使得诸如“视频 y 的片段 x 有多少 View ”之类的查询无法在 上使用索引video.heatmap
.不确定这是否是您现实生活中的问题。此外,每次只需要一个段的数据时,您都必须来回解析整个数组。
但首先,您的第二个解决方案是 hackish(但仍然很有趣)。在您遇到实际性能问题之前,我不建议对您的数据库进行非规范化。
此外,尝试在插入 video
后立即使用 wiews = 0
预先填充 video_headmap
表(触发器可以提供帮助) .
如果空间确实是一个问题,请删除您的代理键 video_headmap.id
并将 (video_id, position)
设为主键(然后去掉多余的 UNIQUE
约束)。但这不应该考虑在内。每个视频 256 x 12 字节(具有 3 个数字列的粗行长度,可以为索引添加一些)每个视频仅额外 3kb!
最后,没有什么能阻止您将当前表切换到 InnoDB 并利用其行级锁定功能。
请注意,我无法理解为什么 views
不能是 UNSIGNED INT
。我建议更改此类型。
关于mysql - 在数据库中按视频时间保存视频观看统计数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17279811/
我目前正在学习数据挖掘,有以下问题。 机器学习和数据挖掘之间有什么关系? 我发现许多数据挖掘技术都与统计相关,而我“听说”数据挖掘与机器学习有很多关系。所以我的问题是:机器学习与统计学密切相关吗? 如
我有很多表的数据,例如: event_id player finish 1 a 1 1 b 2 1 c
我对 http_status_module 提供的统计数据感兴趣 特别是上游部分的统计数据。 http://nginx.org/en/docs/http/ngx_http_status_module.
除了 Cluster MBean 之外,是否有任何可以在 Akka (Java) 中启用的内置 JMX 公开监控/统计信息?我看过 Typesafe Console,但由于它需要许可证才能用于从多个节
我正在尝试在我的程序中使用“usage”统计信息来获取类似于 time 的数据工具。但是,我很确定我做错了什么。这些值似乎是正确的,但有时可能有点奇怪。我没有在网上找到好的资源。有人知道如何做得更好吗
我有一个带有统计表的 MySQL 数据库。我想以年历、月度的形式输出数据。对于没有点击率的几个月,我想花费一个“空”DIV。有两个ID。 $query = mysqli_query($db,"SELE
设置: 问题是经典概率问题的复杂形式: 70 colored balls are placed in an urn, 10 for each of the seven rainbow colors.
有哪些 Ruby gem 可以执行数据处理? 最佳答案 我知道有 3 种从 Ruby 访问 R 的方法: RinRuby RSRuby 通过 Rserve-Ruby-Client 预约 RinRuby
背景 图像领域内的一个国内会议快要召开了,要发各种邀请邮件,之后要录入、统计邮件回复(参会还是不参会等)。如此重要的任务,老师就托付给我了。ps: 统计回复邮件的时候,能知道谁参会或谁不参会。
我正在添加用户输入的几个数字并将它们添加到数组列表中。 到目前为止我的代码: package project143; import java.util.*; /** * @author -- */
正如标题所示,我需要做的是在各种 iO/Android/Windows 应用程序中跟踪各种用户事件 - 例如点击、滑动、在页面上花费的时间等。 这些应用程序基于响应式 HTML/CSS/JS,并具有简
我希望计算 HTML 表中每个唯一值的实例数,并在其自己的表中返回结果。该表是根据用户的文本输入生成的。例如,用户输入可能如下所示: Report 46 Bob Marley 4/20/2
如何使用 PHP 计算数字数组的 z 分数?我需要计算 z 分数,然后找到百分位数 (CDF)!我可以使用哪些 PHP 函数?谢谢! 最佳答案 以下代码将给出 CDF 的良好近似值(Abramowit
我只是想知道是否可以计算 GitHub 上空存储库的总数。 如果不适合所有用户,可以为自己做吗? 编辑 我已经尝试过size:0搜索,但似乎返回了很多包含数据的存储库。采用 size:0..1 之类的
public class Scanner { private HtmlProcessor hp; private String baseUrl; private int ste
我正在使用 Mule ESB 3.4。我想开发一个自定义 Java 组件来计算流收到的请求数量。流程将例如像这样: http inbound-endpoint -> counter -> vm-out
我喜欢借助 GitHub API 来统计存储库中所有开放的拉取请求和问题。我发现 API 端点 /repos/:owner/:repo 结果包含 open_issues 属性。然而,这是问题和拉取请求
如何使用 PHP 计算数字数组的 z 分数?我需要计算 z 分数,然后找到百分位数 (CDF)!我可以使用哪些 PHP 函数?谢谢! 最佳答案 以下代码将给出 CDF 的良好近似值(Abramowit
已关闭。此问题需要 debugging details 。目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and the
我正在尝试以编程方式获取搜索字词列表的 Google 新闻搜索结果计数(即有多少个结果),但仅限于过去 1 年。使用用户界面搜索时,结果计数仅出现在常规搜索中,但在“工具 > 最近 > 过去一年”下时
我是一名优秀的程序员,十分优秀!