2011-04-02 34 views
0

我正在構建一個電子商務CMS,在管理部分我想要顯示所做出的訂單總數,所述訂單的總收入,並且還分別顯示每個類別的總計。這種方法是增加MySQL性能的好主意還是壞主意?

我可以通過查詢各種表格和計數總和做到這一點,但是這會是一個更好的辦法:

相反,我想有一個表,看起來像這樣(並且只有一個記錄)的:

id | total_orders | total_earnings | toy_cat_sales | apparel_cat_sales | etc... 
-------------------------------------------------------------------------------- 
1 | 10   | 10034   | 4    | 6     | etc... 

現在每一個購買,則我能有這樣的記錄進行更新,例如,當一個新的玩具訂單,我一定可以更新toy_cat_sales列,也是total_orders和total_earnings列以反映新的購買時間。

在實際查找過程中,這個查詢一個表,只是顯示它的值將obvisly比與可能的記錄數萬多個表進行統計和計算快得多。

但就是這種方法值得的整體?我知道只有一個管理員和許多客戶。與管理員在後臺查看這些統計數據相比,訂單也會更多。因此,如果第二種方法得到實施,更新將比管理端的查找更多。

我不是MySQL的專家,所以你會在這裏的專家做的,我只是與去。

回答

1

你這種方法遇到的問題是,你擁有的每一個新產品進行一次新的列添加到該表。你真的不想那樣做。

如果你的產品表中的每行都是一個產品,一個訂單表和一個orders_products表,它具有fk的訂單和產品以將每個產品從一個產品該訂單的特定順序。然後在需要時收拾一切。計算機執行該計算所需的時間與上述想法浪費維護的時間毫無關係,特別是一旦開始向該表添加新列並且其中有數百萬行時,這需要一些時間。

2

這可能不是一個好主意。

雖然它會做出一些簡單的查詢/更快,這是每個插入額外的工作。更不用說保持更新的新編程要求。你似乎意識到,當你承認'訂單會發生很多'時,這在你的最後一段中是不值得的'

這個單行表解決方案也不是很可擴展的。每個類別都需要自己的COLUMN,需要更改表格。

我覺得你最好的辦法是寫一個查詢需要的時候找到這些統計數據。至多是一個觀點。其中任何一個都可以包含與分類表的連接,從而使其對類別的添加(或刪除)具有更大的可擴展性。

即使您決定保留此元數據是有價值的(最有可能不是這樣),但有比這張表更好的方法。

相關問題