我想知道哪种方法更适合设计数据库?
我目前有一个大表(每行 97 列),其中包含对查找表的引用。
将一些列分组到更小的表中并添加它们的键列以引用一整行对性能来说不是更好吗?
最佳答案
如果您将表格拆分成几个部分,您将需要额外的联接才能将所有列都放在一行中 - 这会浪费您的时间。
97 列并不多,真的 - 我见过超过 100 列。
这完全取决于您的数据的使用方式 - 如果您的行始终只有 97 列,并且需要 97 列 - 那么将它们拆分到不同的表格中几乎没有任何意义。
如果:
如果不需要,您可以将一些“大”列(如
XML
、VARCHAR(MAX)
等)移动到单独的表中那些一直 -> 在那种情况下,你的“基本”行变小,你的基本表会表现得更好 - 只要你不需要那些超大列您可以将一些并非总是存在的列移到单独的表格中,例如可能是“可选的”并且仅存在于例如20% 的行 - 在这种情况下,您可以为其余 80% 的不需要这些列的情况节省一些处理时间。
关于sql-server - 有数百个的主表 vs 几个更小的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10936697/