假设关系数据库是否有可能,让我们假设它的设计不应该是语义或面向实体的,可能导致选择查询在连接表上的工作速度比在包含所有信息的单个表上工作得更快?我的意思是,数据库架构师是否应该始终坚持尽可能少的表和尽可能多的单表,以便在它们上执行选择查询?
问问题
23 次
1 回答
1
首先,无论假设的 RDBMD 的理论性能如何,数据库架构师都不应该“坚持尽可能少”或“尽可能多的单一......”。坚持好的分析和好的设计,而不是一些肤浅的“最大化”。标准的数据库规范化水平是一个很好的指南,但即使是它们也不应该超出具体的分析和测量。
话虽如此,很容易想出一个连接比具有“可选”字段的单个表快得多的场景:任何低识别辅助表都可以加载到 RAM 中,并且不再读取这些字段来补偿读取“主”表上的字段较少。
例如,假设您有一个“个人”表,其中包含名字/姓氏、出生日期等字段,而性别字段可以是具有可用选项的表的外键。甚至 Facebook 那里也只有有限数量的选项,因此它会快速加载到 RAM 中并从那里“填充”。这比在每条记录上读取带有选项描述的文本字段要快得多。
于 2014-11-03T22:41:19.917 回答