Mysql 使用两个表或一个包含大量字段的表更有效
相关但不完全相同的事情:(或者至少通读它对我没有任何帮助) 所以我正在开发一个新的网站(销售保险单),我们已经有几个网站(它是rails应用程序)可以这样做,所以我的sql数据库中有一个名为Policys的表。 可以想象,它有很多列来支持所有不同的可用选项 在这个新网站上工作时,我意识到我需要跟踪20多个选项 我担心的是,policies表已经很大了,但是现在它中的列几乎都被我们所有的应用程序使用。然而,如果我添加这些,它们将只用于新站点,并将在所有其他策略上留下大量空单元格 所以我的问题是,我是将这些添加到现有表中,还是仅为该站点上销售的策略创建一个新表?我还相信,如果我创建了一个新表,我可以从主策略表中删除一些列(但不是很多),因为这个应用程序不需要这些列 “[A]l几乎全部使用”表明,你可以在考虑后更自然地拆分它 现在,这里的效率问题主要归结为三件事:Mysql 使用两个表或一个包含大量字段的表更有效,mysql,performance,database-table,Mysql,Performance,Database Table,相关但不完全相同的事情:(或者至少通读它对我没有任何帮助) 所以我正在开发一个新的网站(销售保险单),我们已经有几个网站(它是rails应用程序)可以这样做,所以我的sql数据库中有一个名为Policys的表。 可以想象,它有很多列来支持所有不同的可用选项 在这个新网站上工作时,我意识到我需要跟踪20多个选项 我担心的是,policies表已经很大了,但是现在它中的列几乎都被我们所有的应用程序使用。然而,如果我添加这些,它们将只用于新站点,并将在所有其他策略上留下大量空单元格 所以我的问题是,我
*有趣的琐事事实:“正常化”这个名字在一定程度上是对理查德·尼克松的“越南化”政策的一种理解,这意味着在某些方面有一个关于在几乎任何事情上添加“-isation”的笑话。如果不是白宫对春节攻势的反应,我们可以使用gernund“normalising”或完全不同的东西来代替。请记住,一旦你有一个包含许多列的巨大表,在没有延长应用程序停机时间的情况下,几乎不可能对其进行更改,例如添加或删除列。即使检索时间会受到负面影响,键/值结构也会使更改变得更容易。感谢您的全面回答。在仔细阅读了你的答案并与其他人交谈后,我决定最好的办法是继续做一张新桌子。虽然我不喜欢做大量联接的想法,但一个表中没有60-70列的总体好处是,其中很多列都是空的,超过了进行联接的成本。“很多列都是空的”?现在我更确定你想要不止一张桌子;这听起来像一张讨厌的大桌子,不应该是这样的东西。您是否熟悉与之相关的规范化主题?