我想在MySQL中創建一個數據庫表來存儲我的產品統計數據。幾乎每一天的統計數據都應該在數據庫中。問題在於速度。在MySQL中存儲大量數據?
目前我儲存,每個產品,這些值: 時間,售出一件商品,PRODUCT_ID,HIT,OTHER_ID
我認爲兩種不同的方式來存儲DATAS:
- 一天一天在一排(連載)
- 歲歲每個產品在一排(連載)
或你的想法每個產品?
速度測試,我沒有那麼差,差不多好。但你對這個問題有更好的想法或經驗?
我想在MySQL中創建一個數據庫表來存儲我的產品統計數據。幾乎每一天的統計數據都應該在數據庫中。問題在於速度。在MySQL中存儲大量數據?
目前我儲存,每個產品,這些值: 時間,售出一件商品,PRODUCT_ID,HIT,OTHER_ID
我認爲兩種不同的方式來存儲DATAS:
或你的想法每個產品?
速度測試,我沒有那麼差,差不多好。但你對這個問題有更好的想法或經驗?
確實取決於您的報告需求 - 即,如果您只按產品/日報告,那麼將事務統計信息作爲批處理過程的一部分滾動到彙總表中是有意義的。在任何情況下,我建議將您的交易數據和您的報告數據分隔到一個單獨的數據庫中,這樣您可以優化用於寫入的事務數據,並優化報告數據庫的讀取操作(並且不需要大型報告粉碎你的交易處理能力)。
我假設你只在靜態數據庫中使用該數據庫,而且它的交易存儲在第一位的數據庫不同。可發生
速度問題:
有你的數據庫專用統計它有理由開始設計你想要製作的報告;這樣你可以定義:
勾畫出在Excel報表中的查詢數據(但你可以真正使用任何工具)並用假數據填充報告是瞭解你想實現什麼的一個好想法。
當你高興與假因此你可以找出你需要擠進數據庫中的數據,你必須實現查詢,並與你想給你的用戶,如果報告中的作用任何。
如何使用數據
這會告訴你你必須從原始數據庫轉移到統計數據的數據。
如何讓您的數據是最新的
這在很大程度上取決於你想如何頻繁的統計數據進行更新。您可以設置一個觸發器,實時更新您的統計數據庫或定期運行腳本以升級您的統計數據庫。
注意
解決這個問題作爲一個數據倉庫/數據集市解決方案(星型/雪花架構)與彙總(彙總/物化視圖),如表來減少複雜的長時間運行的查詢更快簡單的SELECT語句。
建議批量加載數據到一個臨時(臨時)模式,清洗,驗證和填充你的事實和維度表:)之前它映射
多少數據,例如多少行?你能否以批處理模式加載(可以更快)還是需要實時查詢?你將對數據運行什麼類型的查詢? – 2010-11-28 16:13:23
這是什麼目的?最後,你想用數據做什麼?雙?數據挖掘?只是顯示他們...? – Spredzy 2010-11-28 16:14:52