如何在SQL Server列中有效地存储Heatmap数据

时间:2014-09-15 15:45:43

标签: c# sql-server json heatmap

我正在使用javascript插件heatmap.js(http://www.patrick-wied.at/static/heatmapjs/)来跟踪鼠标移动和点击次数。这个插件会生成大量数据

"data":[{"x":"17","y":"-8","radius":8,"value":1},
        {"x":"23","y":"-47","radius":8,"value":1},...
       ]

大约10000点/ 20秒的活动。

在SQL Server中存储此数据的最有效方法是什么。

目前我正在使用varchar(max)来存储每10000个积分。但是想看看是否有更有效的方法来压缩和存储这些信息。

1 个答案:

答案 0 :(得分:0)

您可以使用与JSON节点的架构匹配的架构创建一个表 - 在这种情况下,它看起来像是包含x,y,radius和value的列。这将减少存储的属性标题(x,y,radius和value)和分隔符({,:,",}和,)的长度,并将值存储为数字而不是字符串需要更少的磁盘空间。

另一种方法是使用压缩库(如zlib)压缩和解压缩原始数据,然后再将其存储为二进制blob。大多数压缩算法都会有效地消除流中重复令牌的开销(相同的属性头)。