一列各种数据组合而不是多个数据列?

时间:2011-10-26 17:35:33

标签: mysql sql database benchmarking

SELECT name FROM users WHERE type_a1=1 AND type_a2=5 AND type_b2=8

在正常情况下可以找到这样的命令。但假设1特殊情况:

  • 每个用户有260个类型(a0,b0..z0到a9,b9..z9),

  • 每个类型在0-9中也有10个

在特殊情况下,需要指定260种类型的组合。我不想在260列上使用260个SELECT,而是使用1个单列,以便命令看起来像这样

SELECT name FROM users WHERE type='a04b05c01...y95z96'

我的问题有两个:

1)使用1个单列来存储多个数据组合而不是多个列是否更有效?

2)如果(有时)要求是来选择3种类型的组合(其他257种类型可以是其他类型),在260列的情况下,我们的第一个命令的性能如何?在单个用户类型列的情况下,与下面的命令相比,用户类型是什么?

SELECT name... FROM users WHERE type LIKE %a11% AND type LIKE %a25% AND type LIKE %b281%

1 个答案:

答案 0 :(得分:0)

您可能希望将其实现为EAV data model,其中用户将是您的实体,类型将是您的属性。