MySql db优化表中的列数

时间:2013-12-06 21:43:02

标签: mysql

我正在“设计”一个mySql表,我有32列,我认为可能有点太多了。 有9个数字字段(int,tinyint,smallint),17 varchar,2个日期时间,4个文本。所有字符串都在utf8_unicode_ci校对中。

太多了吗?有什么建议?

1 个答案:

答案 0 :(得分:1)

  

4个tinyint字段用于类别(每个元素可以属于4个不同的类别)

这听起来像repeating groups。这是关系数据库设计的一个缺陷。

同样可能适用于4个名称和4个描述。每个一对多关系都应该有一个从属表。

我无法从您的描述中判断出此设计的其他部分是否未正常化 但我猜它有。

违反规范化规则有一些合理的理由,但与任何优化一样,应该优化特定查询

在没有任何查询上下文的情况下,请使用规范化设计,因为它可以优化避免数据冗余并防止异常,并支持最广泛的查询类型。