我们有一个数据库表,有太多的行。为了加快性能,我们正在尝试创建一个汇总表。这对于一对一的关系非常有用。例如假设furniture
有一个type
和一个manufacturer_id
,您可以拥有一个包含这两列和一个counts
列的表。查询该表很容易,并能很快得到给定类型的家具数量。有没有办法为多对多关系创建一个汇总表?
但是,如果存在多对多关系呢?所以每件家具也可以有一个或多个colors
以及一个或多个distributors
。那么会发生什么?有什么方法可以总结这些数据,这样我就可以快速找到有多少家具是绿色的?或多少蓝色和黄色?
显然这只是一个编造的例子。但给了一个巨大的数百万和数百万行的数据库表,我如何创建一个汇总表来快速查找汇总信息?
因此,如果我的理论家具企业拥有2亿件家具,会发生什么?那么家具分销商和家具的颜色将甚至超过2亿行,并试图查询哪些家具来自经销商'ikea',而'红色'和'黄色'将永远(或更长)。因此汇总表...能够快速查询汇总数据的原因。 – user1315943 2012-07-19 18:32:29
生成汇总表可能是您需要的解决方案,但请记住,您有创建和维护它们的开销,并且您将不得不提前猜测多对多关系的每种可能组合。我还会指出,家具分销商和家具色表每个只有两个领域。即使你有十亿条记录,所需的磁盘空间仍然会小于我上周末在航展上拍摄的数字照片的空间。 – LavaSlider 2012-07-25 05:33:01
这不是我担心的磁盘空间..它正在查询一张有十亿条记录的表 – user1315943 2012-07-25 21:11:54