php - Mysql 性能 : serialize vs columns

标签 php mysql arrays

假设我有一个类似于我在下面发布的数组,我需要将它存储在我的 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/

相关文章:

php - Mysql查询在最近的行上连接表

php - 日期比较 PHP Mysql

php - 将数据存储在数组中并以复选框为因子?

ios - 将文本拆分为数组,同时保持 Swift 中的标点符号

javascript - 如何读取[object Object]?

php - MySql INSERT语句插入 '0'而不是变量内容

php - 使用套接字传递按钮单击事件

php - 数组到复选框,根据 MtM 选中一些

php - 如何获取mysql列名和值

javascript - 如何将日期列转换为 Google Visualization API 的 JSON 格式