小编Lor*_*sum的帖子

如何最好地将像素存储在数据库中?

将数据加载到表中时,出现以下错误:

ERROR:  row is too big: size 8680, maximum size 8160
Run Code Online (Sandbox Code Playgroud)

该表中有 1000 多列,这似乎是问题所在。一般的互联网建议是“重构!” 或“正常化!”。例如,这篇文章。不幸的是,我不相信这样的建议适用于我的情况。

该表用于存储从设备收集的数据。作为分析的一部分,设备会生成 PNG 图像。PNG 包含 1024 个像素。每个像素都有一个关联的数值。与像素数据一起的是与分析相关的各种其他领域。把桌子分成几部分真的没有意义。这些字段都与正在分析的特定对象在逻辑上相关联。

Postgres 似乎不喜欢每个像素都有自己的字段。该表具有以下形式的字段:pixel_1, pixel_2, ..., pixel_1024。注意,这是从通常的例子有着根本的不同phone_number_1phone_number_2等每个像素是由于其位置的一个唯一的对象。 pixel_1具有不同的位置,pixel_123并且每个像素都有一个相关联的值。它们之间的共同点是它们都用于描述相同的分析对象。它们是 PNG 中给出的视觉表示的定量模拟。

  1. 有没有办法增加行大小?
  2. 如果表根本不能有 1000 多列,我该如何重构它?
  3. 假设前两个答案是“否”,我是否应该将 1024 列粘贴到 XML 中并将其放入文本字​​段中?

我希望我已经把上下文说清楚了。我试图将问题归结为它的本质,但我怀疑可能需要进行一些澄清。如果需要澄清,请告诉我。

编辑:作为一项实验,我尝试将像素分解为单独的表格。这似乎是唯一可能的重构方式。但是 1024 列会产生相同的错误。

postgresql centos-7 postgresql-9.5

3
推荐指数
1
解决办法
889
查看次数

标签 统计

centos-7 ×1

postgresql ×1

postgresql-9.5 ×1