如何在SQL Server列中高效地存储热图数据
本文关键字:存储 数据 高效 SQL Server | 更新日期: 2023-09-27 18:21:53
我正在使用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个点。但我想看看是否有更有效的方法来压缩和存储这些信息。
您可以创建一个具有与JSON节点的模式匹配的模式的表——在这种情况下,它看起来像是具有x、y、radius和value列。这将通过属性头(x、y、半径和值)和分隔符({、:、"、}和,)的长度来减少存储,并且将值存储为数字而不是字符串将需要更少的磁盘空间
另一种方法是使用像zlib这样的压缩库来压缩和解压缩原始数据,然后将其存储为二进制blob。大多数压缩算法都可以有效地消除流中重复标记(相同的属性头)的开销。