mysql – 关系是否比一个大而低效的表慢?

在我的工作中,我被要求违反第一个正常形式(跨列重复组,使用空/空值)几次,“为了计算机处理能力”.简而言之,“学生”表应至少有8个空字段(例如电话:电话1,电话2,电话3 ……)而不是我的建议 – 一个“电话”表,其中包含一个电话号码(以及可能的其他元数据)并且外键是学生ID号.我的老板说,以这种方式存储它们会更好,因为“CPU周期更少,而且在Web平台上很重要”,而不是使用关系.我说,在最糟糕的情况下,它可以忽略不计.

在该示例中,使用关系(假设表在中型Web应用程序中填充了大量记录)明显比使用这种表模式慢?

解决方法:

我没有看到任何人如果没有一些实际的事实可以做出这样的声明来支持它.如果您的查询受CPU限制,那么您应该寻找方法来减少这个瓶颈.

听起来好像你的老板觉得非规范化的数据库会表现得最好,但我不知道你的应用程序是否说得对.此表的预期删除次数,更新次数和插入次数是多少?

我希望这种非规范化设计可能会减少CPU时间,但会期望您的磁盘I / O会增加.从磁盘进行物理读取比CPU周期要贵得多,所以也许你的老板有一个非常具体的指标来满足(CPU),因此想要一个非常具体的设计?如果是这样,我只需构建所要求的内容并保持运行查询的CPU成本指标.如果您看到时间增加,那么您可能想要建议一些设计更改.

实际上,获取一个老板想要查看的所有指标列表并跟踪这些指标可能是一个好主意.

上一篇:MySQL中的数据库是Oracle中的模式:我不理解这种说法


下一篇:mysql – 用于存储产品信息的noSQL?