在MySQL中有一个大表或2个较小的表是否更好?

Dar*_*ein 0 mysql sql database-design data-modeling

这是我的情况:我有大约50个不同的数据字段,我需要存储1个记录(没有相同或重复).大约15个字段是我通常需要在查询中使用的字段,而其余字段偶尔使用(约40%的查询).

我应该设置2个表,一个包含公共字段,另一个包含不太常见的字段,并以1:1的关系加入它们?或者我应该把它们全部放在一张桌子上?

有没有优势,速度或其他方面,做一个或另一个?

oxb*_*kes 5

假设您的表的行在逻辑上是单独的实体,并且所有字段都与实体相关,那么它们应该都在同一个表中.

但是,您可能有一个表,其中每行在逻辑上是多个实体; 重构,以便这是一个每表实体通常称为规范化,或这样的模式:规范化.

规范化模式通常被认为是"正确的",但在表之间进行连接时会考虑性能因素.


S.L*_*ott 5

两个表意味着40%的查询有连接,60%没有连接.

您不会整体保存存储空间.

40%的查询速度较慢.

由于两个原因,60%的查询速度更快.1)没有加入.2)更少的物理数据块.

这种表现不同"重要"吗?这会让事情"变得更好"吗?

除非您更清楚地定义每个查询所花费的时间 - 并运行基准测试来衡量差异 - 否则无关紧要.

在确定哪个"更好"之前,您必须实际构建和测量性能.