2010-09-29 54 views
0

我有一个与Django一起使用的MySQL数据库。我的一张桌子上有大约60列。我想知道是否将它分成5-6个较小的表格。这是合乎逻辑的,因为列很好地分成5-6个逻辑组。Django/SQL:什么是最高效的,多列或多表?

缺点是,一些Django的网页则将需要5-6行的查询,而不是1

它是更有效的有一个表有许多列,或者用更少的列多表?如果前者,它有多少缺点是它有很多表? (只要一个可以量化这样的事情...)

谢谢你的建议:)

回答

0
  1. 使用旧Opccams'剃刀。不要做不必要的动作。你的桌子好吗?如果是这样 - 请保持原样。不要让自己陷入困境。

  2. 您对6条查询有误。它仍然是单个查询。但是,见项目1

+0

嘿:)这只是有点笨拙有这么多的专栏,但我怀疑你可能是对的... – AP257 2010-09-29 14:47:23

+1

@ AP257难道对谁?数据库?我可以向你保证它可以处理十次以上。给你?但是当你得到最终结果时,没有什么区别。是的,这个数字似乎相当大。但是优化数据库结构不仅仅是拆分表。使你的数据库结构基于逻辑原理,而不是这种错误的情绪 – 2010-09-29 14:54:42

0

如果它的逻辑将其拆分成多个模型,然后将它们分割。出于效率的原因,不要将它们放在单一模型中。

检索数据的性能/有效性的确取决于您如何构建查询。当你仅使用5 - 10个字段时,没有意义将所有70列加载到内存中。你可以使用.values()来选择你想要的。

此外,当你分割成多个模型,并使用外键关联起来,然后用select_related你可以检索与查询少相同的信息,有时甚至1

如果我们可以看到模型,可能是我们能给予我们最好的意见。

相关问题