假设我有一个类似于我在下面发布的数组,我需要将它存储在我的 MySQL 数据库中:
Array(
"Weight" => "10",
"Height" => "17",
"Usage" => "35"
);
前言:
- 我永远不会更新这些值
- 我永远不会根据这些值执行查询
长话短说,我只需要按原样存储和显示这个数组。实际上我需要使用这些值来生成图表。现在我看到 2 个可能的选项。
选项 1:即使我永远不会对这些值使用 WHERE、ORDER BY、HAVING (...) 条件,我也会将每个值分别存储在专用列(体重、高度、用途)中。
选项 2:我创建了一个列(统计数据),我在其中存储了数组的序列化版本,然后为了生成我的图表,我在使用它之前反序列化每一行。
问题是:就有效性和性能而言,存储此数组的最佳方法是什么?
在我看来,第二种方法是最好的,但假设流程中涉及许多行和元素。我不明白使用 PHP 反序列化由 100 行的 20 个元素组成的数组或读取存储在 20 列中的普通值是否更快更轻,因为我需要非常频繁地同时保存它们。
最佳答案
I will never update these values
I will never perform a query based on these values
当您完成将代码存储为序列化值的那一刻,您将被要求执行查询以更新权重超过 10 的任何内容。
只需将它们存储在各自的列中 - 这不仅能让代码面向 future ,而且更易于使用,从长远来看会占用更少的驱动器空间。
关于php - Mysql 性能 : serialize vs columns,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33570242/