我們有一個數據庫表,有太多的行。爲了加快性能,我們正在嘗試創建一個彙總表。這對於一對一的關係非常有用。例如假設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