编码数据的最佳方式

时间:2014-11-09 18:31:29

标签: php database compression encode

我的数据库中有大量数据,格式为:

lat;lon;speed;sec:lat;lon;speed;sec......

例如:

 53.284534;50.227268;67;0:53.285481;50.226627;68;6:53.286429;50.226042;66;12:.......

格式是格子,经度,速度,从开始的秒数。 每个字符串的长度为1000到100000。 我尝试在通过gzcompress()和base64_encode()放入数据库之前压缩它。 如果gzcompress和base64_encode之后的初始字符串7607符号的长度为3444, 因此压缩率为50%。 压缩这样的字符串是否更有效?

2 个答案:

答案 0 :(得分:1)

尝试将它们存储为二进制浮点数。这非常简单,速度非常快。 每个数字将使用4个字节,这样就可以直接在代码中使用它们。

或者如果您需要它们更精确,请将每个组件乘以预先定义的值(对于每个组件可能不同),并存储为32位整数字。

答案 1 :(得分:1)

样品与样品之间存在明显的相关性。我会从每个样本中减去前一个样本,当然除了第一个样本。我会将每个差异编码为integer of variable length(不是文本,而是二进制)。对于lat和long,我会假设(你需要验证)在小数点后面的数字不超过六位,乘以1,000,000。第二个和第三个样本每个只需要六个字节。

然后我会用gzip压缩。