Mysql性能:序列化vs列

时间:2015-11-06 15:33:18

标签: php mysql arrays

让我们说我有一个类似于我在下面发布的数组,我需要将它存储在我的MySQL数据库中:

Array(
    "Weight" => "10",
    "Height" => "17",
    "Usage" => "35"
);

序言:

  • 我将从不更新这些值
  • 我将从不根据这些值执行查询

长话短说我只需要存储显示这个数组。实际上我需要使用这些值来生成图形。现在我看到了两种可能的选择。

选项1:即使我永远不会对这些值使用WHERE,ORDER BY,HAVING(...)条件,我也会将每个值分别存储在专用列中(重量,高度,用法)。

选项2:我创建了一个列(stats),然后我存储了一个序列化版本的数组,为了生成我的图形,我在使用之前对每一行进行反序列化。

问题是:在效果和表现方面,存储此阵列的最佳方法是什么?

在我看来,第二种方法是最好的,但是让我们说这个过程涉及很多行和元素。我不明白它是否更快更轻松地将由20个元素组成的数组反序列化为100行和PHP,或者读取存储在20列中的普通值,考虑到我需要非常频繁地保存它们同时进行。

1 个答案:

答案 0 :(得分:4)

  

我永远不会更新这些值

     

我永远不会根据这些值执行查询

在您将代码存储为序列化值的最终代码中,您将被要求执行查询以更新权重大于10的任何内容。

只需将它们存储在自己的列中 - 这不仅可以满足未来的需求,而且更容易使用,从长远来看,它将占用更少的驱动器空间。