服务器负载:mySQL与PHP函数

时间:2011-06-19 21:58:43

标签: php mysql performance server-load

以下是我的情况:

情况:

我有用户,每个用户都有多个类别的多个值。

我看到它的方式我有两个选择:

予。创建一个新表'值':

 user_ID   category   value 

  ...        ...       ...
   5          1        aaa
   5          1        bbb
   5          2        ccc
   5          2        ddd
   5          2        eee
   6          1        xxx
   6          2        yyy
   6          1        zzz

II。在我与用户的实际表格中 - “用户”:

user_ID (unique)         values  
        5             aaa,bbb$$ccc,ddd,eee
        6             xxx,zzz$$yyy

...我将值保存为文本并使用','除以值和'$$'划分类别进行解析。

到目前为止,我一直在做一些小事情,但是现在我期待这个数据库的很多值和类别,我想知道哪个会给我更少的服务器负载 - 拥有一个非常庞大的mySQL数据库表和在每个页面上浏览它以查看哪些值属于当前用户;或者从一个相对较小的表中获取所有且只有他的值,但是每次使用PHP解析字符串以使其可用?

2 个答案:

答案 0 :(得分:4)

第一种方法 - 就是构建关系数据库的方法。您还可以获得索引的额外好处,即使使用相当大的数据集,也可以快速提高索引。

此外,它允许从另一个方向查询数据 - 获取类别2等于'eee'的所有用户

答案 1 :(得分:0)

将未知数量的数据插入到字段中是一个非常糟糕的主意,因为您首先不知道如何标注它。此外,您的数据库无法以任何有用的方式对其进行索引,并且性能会随着系统的增长而降低。

将类别和值放在一个单独的表中可以很好地扩展,就像adam已经说过的那样,是关系数据库的全部内容。

您可能想要谷歌“数据库规范化”并浏览一些结果以获取更多信息。