我创建了一个包含30列的表。
CREATE TABLE "SETTINGS" (
"column1" INTEGER PRIMARY KEY,
...
...
"column30"
)
但是,我可以对它们进行分组并创建不同的表,它们可以在主表中使用外键。哪种方式最好?或者列的数量很小,所以它跟我将遵循的方式相同?
答案 0 :(得分:5)
这取决于您经常进行的数据和查询。
最适合一张大桌子
最适合许多小桌子
问题在于,通常您可以根据情况使用这两种解决方案。必须进行使用分析才能选择正确的。
答案 1 :(得分:2)
如果它们确实被命名为column1,column2 .... column30那么这是一个相当好的指标,表明您的数据未规范化。
遵循规范化规则应始终是您的出发点。 有时违反规则的原因 - 但是在你知道你的数据应该是什么样之后。
关于违反规则...... 可能在这里有两种可能的情况(在您确定了正确的结构并且完成了适当的测试级别之后)适当的数据量):
加入很贵。在单个表中保持父/子关系可以提高查询性能,您通常只选择父和子并检索单个行
除非您使用固定宽度的MyISAM表,否则更新记录会导致它们更改大小,因此必须重新定位到表数据文件中。这很昂贵,可能会对检索产生影响。