我正在构建一个多语言站点决定我是否应该拆分表
我有一个说明表,其中包含每个产品的描述以及指示语言的列。所以它包含一行每种语言描述
现在我担心的是,我有系统中的各种不同类型的产品,阅读任何产品的描述将不得不通过此表。这意味着很多流量到这个表
是否有创建多个描述表,将专用于特定的产品组,并分发到单个表到多个表的点击量的增益?
这会使我在Microsoft SQL上获得任何性能提升吗?
我正在构建一个多语言站点决定我是否应该拆分表
我有一个说明表,其中包含每个产品的描述以及指示语言的列。所以它包含一行每种语言描述
现在我担心的是,我有系统中的各种不同类型的产品,阅读任何产品的描述将不得不通过此表。这意味着很多流量到这个表
是否有创建多个描述表,将专用于特定的产品组,并分发到单个表到多个表的点击量的增益?
这会使我在Microsoft SQL上获得任何性能提升吗?
出于实用目的,没有。如果你的表格被正确编入索引,那么你不应该看到任何区别。
不要过早地优化数据库结构。
你在说多少产品?因为如果它少于一千万,甚至不用这样优化它。
你在说什么基本上是一个分区方案。这用于非常大的数据集。尽管除非每件物品都很大,否则不到一千万就不会接近。
如果你正在做的是多读,写一些没有从这种划分有增益。
在出现问题之前不要优化问题。
我建议检查这两个东西:
如果您没有明确看到性能问题,我不会打扰更改您的结构。对于几乎任何规模的数据库来说,这应该是完全正常的 - 可能有大量的项目,分区描述表可能会有所帮助,但是如果它被正确地编入索引,我认为它根本不重要。
当您对表格进行规格化时,总会有轻微的性能下降。但是如果你正确地为你的表建立索引,你可能不会注意到它。如果及时确实成为问题,那么对规范化表格比规范化更容易。
所以,我会建议你使用单独的表格。
同意 - 我更喜欢解决实际问题的问题。
如果你的应用是充分模块化的,和你的数据访问层结构正确,它不应该是以后所有的东西拆分问题。如果您使用存储过程,视图等从应用程序中抽象出基础表结构,那么稍后执行此类优化应该对您的源代码的影响最小。
其次。有时候问自己这个问题是很好的,但在某种“笑测试”水平上。保持代码充分记录,模块化等,以便您可以解决性能问题,如果您非常成功,并且遇到问题。 – 2009-08-24 16:29:32