我已經嘗試了兩種方法,但我無法決定在輸入大小增加時哪一種方法會更好。MySQL體系結構優化
首先後面的故事:
我們的產品,每個產品都有一個類別路徑(例如配件鞋,運動鞋)
我想我的產品,以及它們各自的類別連接,同時保持兼容的東西與3NF規則。
我可以去這兩個方面,我可以:
擁有很多產品和類別之間的一對多關係(通過炸燬類路徑成單獨的類別和形成在許多人的關聯很多表)
優點:
簡單易懂。缺點:
許多協會以指數級增長!你可以想象爲什麼,每個產品都有多個類別,測試用例只涉及250,000個產品。我可以直觀地看到,隨着輸入大小的增加,數據庫引擎的壓力將會增加。創建類別路徑和產品之間的多對多關係,以及類別路徑和實際類別之間的多對多關係。這對我來說很有意義,因爲250,000個產品的測試用例中的類別路徑限制爲13,000個獨特實例,而在另一個多對多關係中與其實際類別相關聯的這些路徑不超過61,000行。
優點:
遠更少類別關聯,用於通過數據庫迅速(61000個協會相比,形成於第一技術900000個協會)缺點:
遠更內部聯接。產品與類別路徑相連,而類別路徑又與多對多關係中的類別相關聯。
您認爲哪種技術更合適?我需要快速檢索,因此快速選擇語句應該是主要標準。
我意識到,這很大程度上取決於正確的索引,但在第一種情況下,行的大小增長至少3倍,因爲在第二種情況下,存在如此多的內部連接,我擔心檢索速度受到負面影響。