我有一个MySQL数据库,我正在使用Django。我的一张桌子有大约60列。我想知道是否将它分成5-6个较小的表。这将具有逻辑意义,因为列很好地分成5-6个逻辑组。
缺点是某些Django页面需要5-6行查询而不是1。
让一个表有很多列,或者有很少列的表更有效吗?如果是前者,有多少表有多少缺点呢? (据我所知,可以量化这些事情......)
感谢您的建议:)
答案 0 :(得分:3)
看看
http://en.wikipedia.org/wiki/Database_normalization
http://databases.about.com/od/specificproducts/a/normalization.htm
答案 1 :(得分:0)
使用旧的Opccams剃须刀。不要做不必要的动作。你的一张桌子还可以吗?如果是这样 - 保持原样。不要让自己无处可去。
你错了6个查询。它仍然是单一查询。但请参阅第1项。
答案 2 :(得分:0)
如果将它们分成多个模型是合乎逻辑的,那么将它们拆分。仅仅出于效率的原因,不要将它们保留在单一模型中。
检索数据的性能/有效性实际上取决于您构建查询的方式。当您仅使用5-10个字段时,无需在内存中加载所有70列。你可以使用.values()选择你想要的东西。
此外,当您拆分为多个模型并使用外键关联它们时,使用select_related,您可以使用较少的查询检索相同的信息,有时甚至可以检索1。
如果我们能看到模特,可能会给出我们最好的意见。