mysql空列

cof*_*tor 5 mysql

目前我正处于优化阶段.

我倾向于使用多个表,所以我没有空列.

我的问题是,空列是一个大问题吗?我不是在争论太空.我指的是索引速度,数据检索等......

我的赌注示例是当我有一个简单的客户表时,有些列并不总是填充.像电子邮件,dob,ssn或pic.我会说大多数时候他们没有填写.

这使我创建一个新表来容纳辅助数据.但如果我将这些列与其他客户信息放在同一个表中,它真的会有所作为吗?

如果我这样做,那么会有许多空列的记录.这让我想知道当记录数量巨大时这会对性能产生多大影响.

pax*_*blo 2

如果您正在进行优化,我的建议是停止它:-)

优化是为了应对性能问题而应该做的事情,而不是一时兴起。如果没有性能问题,所有的优化都是白费力气。

在正确设计的模式中,空字段很少会对数据检索产生太大影响,因为大多数查询应尽可能仅使用索引来决定要获取哪些行。一旦发现行,就可以转到表中获取实际数据。

并且索引的速度不会仅仅因为列存储在另一个表中而改变。如果需要建立索引,那么就需要建立索引。

我希望我的模式尽可能简单(同时仍然主要遵循 3NF),以避免不必要的连接。