具有多个文本列与单个文本列/中文文本列

时间:2013-05-28 06:26:18

标签: mysql performance

表中有多个文本列与单个文本列/中文文本列?哪个应该扩大更好?

示例:

Table t :

Col1 : {a:1} // .. could me larger than varchar 35565
Col2 : {b:1} // .. could me larger than varchar 35565
Col3 : {c:1} // .. could me larger than varchar 35565

VS

Col : {a:1, b:1, c: 1} // might be medium text to handle the extra size.

2 个答案:

答案 0 :(得分:0)

在这方面,不会有太大的不同。

什么能有所作为:

  • 您的应用程序逻辑。如果您经常需要选择/搜索/更改A,B或C,最好将它们放在不同的列中。
  • 索引

答案 1 :(得分:0)

你绝对应该这样做。阅读the first normal form,它解释了为什么这是一个可怕的想法。每个特定列必须保存原子值。

首先,将这些列合并在一起似乎更容易,但是到时候你会后悔的。相信我,我一直在那里。通过合并列,错误的风险呈指数级增长。您可能还会在数据库中得到大量垃圾数据。

另一个问题是:你怎么知道一个“列”(注意引号)结束而另一个开始?你会用一个特殊的角色吗?当您希望该特殊字符出现在该文本中时会发生什么?

这太令人头痛,不值得。以正确的方式做到这一点!