2011-12-21 16 views
2

我有票,其上記錄項目的用戶的投票(USER_ID,ITEM_ID,日期)的表。用戶投票的項目數量可能達到數十萬,用戶數以萬計。我需要定期查詢這些項目的投票總數(最高票數的項目)。爲避免不斷總結所有總數,跟蹤項目表(item_name,item_id,vote_total)中的投票總數似乎是合乎邏輯的。記錄投票總數時是否存儲次要計數信息是否過度優化?

另一方面,這樣做意味着每次用戶投票時都會不斷更新投票表與當前總計(許多用戶大致同時更新同一行),並且我被告知優化代碼可能會產生問題。這是我應該擔心的嗎?

我注意到這個問題來了一次又一次,比如我需要做同樣的事情與每個項目的評論總數,每個項目等觀看總次數是存儲這樣的普遍接受的次要信息實踐?

+1

除非是說,它需要* A *的性能測試用例,然後是的,這是一個*過度優化*。只要模型保持清潔,它就會保持自己的適應性:二級/緩存表肯定比嘗試將這些信息應用到主要規範化數據更好。 – 2011-12-21 01:26:17

回答

1

沒有你的測試表明您查詢太慢?添加索引是否會使文件太大?這些指數是否不利於業績?

千萬不要去加入你沒有表現出對需要優化的麻煩。你作爲開發者的時間比這更有價值。

+0

我的查詢很慢。在~500K條目記錄中,我的查詢需要2.7秒。該查詢已經獲取了類似於投票數據的數據(例如,對每個項目投票的會話用戶的朋友的姓名)。檢索我期望的投票將使它仍然變慢。我想最好的辦法是發佈一個新問題,詢問如何改進查詢,然後考慮優化它,如果它仍然太慢。 – jela 2011-12-21 03:50:56

相關問題